第5章运算符及其表达式.ppt
《第5章运算符及其表达式.ppt》由会员分享,可在线阅读,更多相关《第5章运算符及其表达式.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 运算符及其表达式运算符及其表达式 运算符是指用来对运算对象进行各种运算的操作符号。运算符是指用来对运算对象进行各种运算的操作符号。表达式是指由多个运算对象和运算符组合在一起的合法算式。表达式是指由多个运算对象和运算符组合在一起的合法算式。其中运算对象包括常数、常量、变量和函数。本章内容如下:其中运算对象包括常数、常量、变量和函数。本章内容如下:算术运算符及算术表达式;算术运算符及算术表达式;赋值运算符及赋值表达式;赋值运算符及赋值表达式;关系运算符及关系表达式;关系运算符及关系表达式;逻辑运算符及逻辑表达式;逻辑运算符及逻辑表达式;条件运算符及条件表达式;条件运算符及条件表达式
2、;逗号运算符及逗号表达式;逗号运算符及逗号表达式;位运算符。位运算符。5.1 5.1 算术运算符及算术表达式算术运算符及算术表达式算术运算符包括基本算术运算符和自增、自减运算符。基本算术运算术运算符包括基本算术运算符和自增、自减运算符。基本算术运算符是对数值型也包括字符型数据进行加、减、剩、除的四则运算。算符是对数值型也包括字符型数据进行加、减、剩、除的四则运算。5.1.1 5.1.1 算术运算符算术运算符算术运算符的具体运用原则算术运算符的具体运用原则:+(正)、(正)、-(负)运算符是属于同一级别的单目运算符,结(负)运算符是属于同一级别的单目运算符,结合方向是自右向左。合方向是自右向左。
3、+(加)、(加)、-(减)运算符是属于同一级别的双目运算符,结(减)运算符是属于同一级别的双目运算符,结合方向是自左向右。例如合方向是自左向右。例如a+b-c+da+b-c+d*,/,%是同一级别的双目运算符,结合方向是自左向右。是同一级别的双目运算符,结合方向是自左向右。例如:例如:a+ba+b*c*c,运算顺序是先计算,运算顺序是先计算b b与与c c的乘积,然后再与的乘积,然后再与a a求和,求和,即即a+(ba+(b*c)*c)。算术运算符注意以下几点算术运算符注意以下几点:/(除法运算符)的除数不能为(除法运算符)的除数不能为0 0,即不能用一个数去除以,即不能用一个数去除以0 0。
4、*(乘号运算符)在式子中不能省略,也不能写成是代数式子中的(乘号运算符)在式子中不能省略,也不能写成是代数式子中的乘号乘号“”或或“”。例如:求长方体的体积公式为。例如:求长方体的体积公式为abcabc,在编程时要写,在编程时要写成成:a*b*c:a*b*c。如果两个整型数相除,得到整型结果。如果两个实数相除或其中有如果两个整型数相除,得到整型结果。如果两个实数相除或其中有一个是实数,那么得到结果为实型。例如:一个是实数,那么得到结果为实型。例如:5/3=15/3=1,2/4=02/4=0,5/-3=15/-3=1,5./3=1.6666675./3=1.666667,5.0/3.0=1.66
5、6667 5.0/3.0=1.666667%求余运算符(或称求模运算),只适合于整型数据和字符型数据。求余运算符(或称求模运算),只适合于整型数据和字符型数据。求余运算的结果符号与被除数相同,其值等于两数相除后的余数。求余运算的结果符号与被除数相同,其值等于两数相除后的余数。5%3 /*5%3 /*值为值为2*/2*/-7%-3 /*-7%-3 /*值为值为-1*/-1*/算术运算符注意以下几点算术运算符注意以下几点:+、-(自增、自减运算符)属于同一级别的单目运算符,结合方(自增、自减运算符)属于同一级别的单目运算符,结合方向是自右向左。自增、自减运算符只能与变量结合使用,放在变量的前面向是
6、自右向左。自增、自减运算符只能与变量结合使用,放在变量的前面或者是后面。有以下或者是后面。有以下4 4种形式:种形式:+a+a:a a的值先增加的值先增加1 1后,再参与其他运算。后,再参与其他运算。a+a+:a a的值先参与其他运算,再使的值先参与其他运算,再使a a的值增加的值增加1 1。-a-a:a a的值先减小的值先减小1 1后,再参与其他运算。后,再参与其他运算。a-a-:a a的值先参与其他运算,再使的值先参与其他运算,再使a a的值减小的值减小1 1。例如:例如:m=3;m1=m+;m=3;m1=m+;等价于等价于m=3;m+;m1=m;m=3;m+;m1=m;【例例5-15-1
7、】“+”“+”和和“-”-”运算符在的使用。运算符在的使用。对于自增、自减运算符,做以下几点说明:对于自增、自减运算符,做以下几点说明:自增或自减函数只能用于变量,不能用于常量或表达式。例如:自增或自减函数只能用于变量,不能用于常量或表达式。例如:(a+ba+b)+)+这样的表示方法是错误的。这样的表示方法是错误的。在一个表达式中对一个变量自增或自减多次,可能造成困惑。在一个表达式中对一个变量自增或自减多次,可能造成困惑。a=3;k=(+a=3;k=(+a)+(+aa)+(+a););这种程序很容易出错,在编程的过程中要避免使用这这种程序很容易出错,在编程的过程中要避免使用这样的程序,而且也没
8、有必要使用如此难懂的程序,完全可以使用另一种方样的程序,而且也没有必要使用如此难懂的程序,完全可以使用另一种方法来表示,增加程序的可读性。法来表示,增加程序的可读性。+、-运算符的结合方向是自右向左,如:运算符的结合方向是自右向左,如:-i+-i+等价于等价于-(i+)-(i+)。+、-运算符的优先级大于乘、除、求余的优先级。运算符的优先级大于乘、除、求余的优先级。+、-运算符运算的操作对象只能为整型变量、字符型变量和指针运算符运算的操作对象只能为整型变量、字符型变量和指针变量,而不能是其他类型的变量。变量,而不能是其他类型的变量。+、-运算符运算常用于循环变量中,是循环变量自动加运算符运算常
9、用于循环变量中,是循环变量自动加1 1或减或减1;1;也可用于指针变量,是指针指向前一个或后一个地址。也可用于指针变量,是指针指向前一个或后一个地址。5.1.2 5.1.2 算术表达式算术表达式用算术运算符将运算对象即运算量或操作数连接起来,用算术运算符将运算对象即运算量或操作数连接起来,构成符号构成符号C语言语法规则的式子,称为算术表达式。算术表语言语法规则的式子,称为算术表达式。算术表达中,运算对象包括常量、变量和函数。达中,运算对象包括常量、变量和函数。例如:例如:x+y*a/x-5%3,3.5+56%10+3.14,a+*1/3。5.1.2 5.1.2 算术表达式算术表达式关于算术表达
10、式有以下几点说明:关于算术表达式有以下几点说明:算术表达式的求值顺序按算术运算的优先级别高低次序算术表达式的求值顺序按算术运算的优先级别高低次序进行,先执行优先级别高的,再执行优先级别低的。进行,先执行优先级别高的,再执行优先级别低的。以表达式以表达式8%3+9/28%3+9/2为例,为例,%、/运算符的优先级高于运算符的优先级高于+运算运算的优先级,因此在运算的过程中先算求余和除法,的优先级,因此在运算的过程中先算求余和除法,8%3=28%3=2,9/2=49/2=4,然后再求和,然后再求和2+4=62+4=6,因此最后的结果为,因此最后的结果为6 6。在算术表达式中,运算对象有常量,也有变
11、量。在算术表达式中,运算对象有常量,也有变量。例如:例如:a+5*2a+5*2(double)(8%3)(double)(8%3)【例例5-25-2】算术表达式的应用举例。算术表达式的应用举例。5.2 5.2 赋值运算符及赋值表达式赋值运算符及赋值表达式C语言的赋值运算符包括简单的赋值运算符和复合赋值语言的赋值运算符包括简单的赋值运算符和复合赋值运算符,本小节主要讲解简单的赋值运算符,复合赋值运算运算符,本小节主要讲解简单的赋值运算符,复合赋值运算符将在位运算符一节中进行详细的说明。符将在位运算符一节中进行详细的说明。5.2.1 5.2.1 赋值运算符赋值运算符赋值运算符与代数里面的等号相同,
12、即赋值运算符与代数里面的等号相同,即“=”。赋值运。赋值运算符的作用是把运算符右边的表达式的值赋给其左边的变量,算符的作用是把运算符右边的表达式的值赋给其左边的变量,其结合性是从右向左。例如:其结合性是从右向左。例如:a=5;5.2.1 5.2.1 赋值运算符赋值运算符对赋值运算符我们有以下几点认识:对赋值运算符我们有以下几点认识:(1 1)赋值运算符)赋值运算符“=”左边必须是变量,右边可以常量、变量,也可以左边必须是变量,右边可以常量、变量,也可以是函数调用或表达式。是函数调用或表达式。例如:例如:s=a*b/c-12.34s=a*b/c-12.34intint a;a=b;a;a=b;(
13、2 2)赋值与运算符)赋值与运算符“=”与数学中的等号与数学中的等号“=”看起来相同,但是它们看起来相同,但是它们的含义、作用完全不同。的含义、作用完全不同。a=a+2;a=a+2;(3 3)复合赋值运算符是由其他运算符与基本的赋值运算符组合而成的。)复合赋值运算符是由其他运算符与基本的赋值运算符组合而成的。例如:例如:a+=3;a+=3;相当于:相当于:a=a+3;a=a+3;,b*=a;b*=a;相当于相当于b=b*a;b=b*a;。h/=h/=x+yx+y;不能理解为:不能理解为:h=h=h/x+yh/x+y,应该理解为,应该理解为h=h=h/(x+yh/(x+y)5.2.2 5.2.2
14、 赋值表达式赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子由赋值运算符将一个变量和一个表达式连接起来的式子称为赋值表达式。一般的书写形式如下:称为赋值表达式。一般的书写形式如下:变量变量 赋值运算符赋值运算符 表达式表达式赋值表达式:赋值表达式:a=10 b=a=10 b=c+dc+d a/=d+2 a/=d+2赋值语句:赋值语句:a=10;b=a=10;b=c+dc+d;a/=d+2;a/=d+2;5.2.2 5.2.2 赋值表达式赋值表达式对于赋值表达式,需要说明以下几点:对于赋值表达式,需要说明以下几点:(1 1)赋值运算符的左边必须为变量,而赋值表达式的)赋值运算符的左边必
15、须为变量,而赋值表达式的左边可以是变量,也可以是赋值表达式。当赋值表达式的左左边可以是变量,也可以是赋值表达式。当赋值表达式的左边是赋值表达式的时候,应该带上括号。边是赋值表达式的时候,应该带上括号。(a=3*4)=4*6(a=3*4)=4*6(正确)(正确)a=3*4=4*6a=3*4=4*6(错误)(错误)(2 2)赋值表达式的右边的表达式可以是一个算术表达)赋值表达式的右边的表达式可以是一个算术表达式、关系表达式、逻辑表达式等等,也可以是一个赋值表达式、关系表达式、逻辑表达式等等,也可以是一个赋值表达式。例如:式。例如:c2=c1=5c2=c1=5相当于相当于c2=c2=(c1=5c1=
16、5)(3 3)赋值表达式里面可以包含复合赋值运算符。)赋值表达式里面可以包含复合赋值运算符。例如:例如:c2=c1+=1c2=c1+=1相当于相当于c2=(c1+=1)c2=(c1+=1)(4 4)在)在C C语言中,赋值操作不仅出现在赋值语句中,而语言中,赋值操作不仅出现在赋值语句中,而且可以以表达式形式出现在其他语句中。且可以以表达式形式出现在其他语句中。printf(“%d”,a=b=3);printf(“%d”,a=b=3);5.3 5.3 关系运算符及关系表达式关系运算符及关系表达式C语言中关系运算常用于选择结构、循环结构的条件判语言中关系运算常用于选择结构、循环结构的条件判断。由关
17、系运算符连接的式子称为关系表达式,用于条件的断。由关系运算符连接的式子称为关系表达式,用于条件的判断。判断。5.3.1 5.3.1 关系运算符关系运算符关系运算符是用来比较两个运算量大小的运算符,实际关系运算符是用来比较两个运算量大小的运算符,实际上就是一种上就是一种“比较运算比较运算”,运算的结果只能是,运算的结果只能是“1”或或“0”。当两者的比较关系成立的时候,结果为。当两者的比较关系成立的时候,结果为“1”;当两者的;当两者的比较关系不成立的时候,结果为比较关系不成立的时候,结果为“0”,因此关系运算符的,因此关系运算符的结果类型为整型。结果类型为整型。5.3.1 5.3.1 关系运算
18、符关系运算符对关系运算符进行以下几点说明:对关系运算符进行以下几点说明:(1 1)关系运算符的优先级别比算术运算符的级别低,但比赋值运)关系运算符的优先级别比算术运算符的级别低,但比赋值运算符的级别高。算符的级别高。例如:例如:a=2*28 a=2*28 顺序为顺序为a=(2*2)8)a=(2*2)(c=a)A(c=a)该关系表达式中的表达式为赋值表达式,将字符该关系表达式中的表达式为赋值表达式,将字符aa赋值给变量赋值给变量c c,即,即AaAa,AA的的ASCIIASCII值为值为6565,aa的的ASCIIASCII值为值为9797,即,即65976597,关系不成立,关系运算的,关系不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 运算符及其表达式 运算 及其 表达式
限制150内