操作符与表达式.ppt





《操作符与表达式.ppt》由会员分享,可在线阅读,更多相关《操作符与表达式.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 操作符和表达式操作符和表达式oC+操作符操作符oC+表达式表达式3.1 操作符和表达式操作符和表达式o在在C+中对常量或变量进行运算或处理的符号称为中对常量或变量进行运算或处理的符号称为运算符运算符,即,即操作符操作符操作符操作符,参与运算的对象称为,参与运算的对象称为操作数操作数操作数操作数。o由操作符、操作数及标点符号组成的,能取得一个由操作符、操作数及标点符号组成的,能取得一个值的式子称为值的式子称为表达式表达式表达式表达式。o根据操作数的多少,可将根据操作数的多少,可将操作符操作符分为分为单目单目、双目双目及及三目三目操作符。操作符。n单目操作符单目操作符只对一个操作数运
2、算,如负号操作符只对一个操作数运算,如负号操作符“”等;等;n双目操作符双目操作符要求有两个操作数,如乘号操作符要求有两个操作数,如乘号操作符“*”等;等;n三目操作符三目操作符要求有三个操作数,三目操作符只有一个,即要求有三个操作数,三目操作符只有一个,即条件操作符条件操作符“?:”。操作符和表达式操作符和表达式a*x操作符:操作符:*操作数:操作数:a、x表达式:表达式:a*xy=t操作符:操作符:=操作数:操作数:y、t表达式:表达式:y=ty=a*x操作符的优先级操作符的优先级优先级和结合性决定了运算中的优先关系优先级和结合性决定了运算中的优先关系优先级:优先级:指不同运算符在运算中的
3、优先关系,指不同运算符在运算中的优先关系,优先级越高,越先计算。优先级越高,越先计算。例如:例如:算术操作符算术操作符的优先级高于的优先级高于关系操作符关系操作符、逻逻辑操作符辑操作符的优先级;的优先级;算术操作符中,算术操作符中,乘号乘号(*)和除号和除号(/)的优先的优先级高于级高于加号加号()和减号和减号()的优先级。的优先级。操作符的结合性操作符的结合性结合性:结合性:决定优先级相等的运算符组合在一决定优先级相等的运算符组合在一起时的运算次序起时的运算次序 如如+、-的结合性是从左到右(左结合),的结合性是从左到右(左结合),则则a+b+c-d的运算次序为:的运算次序为:(a+b)+c
4、)-d /先算先算a+b,再加,再加c,最后减,最后减d 又如前又如前+和单目负和单目负-的结合性是从右到左的结合性是从右到左(右结合),则(右结合),则-+a的运算次序为:的运算次序为:-(+a)/先做先做+a,再取相反数(加负号),再取相反数(加负号)3.2 优先级和结合性优先级和结合性操作符按功能分类:操作符按功能分类:o算术操作符和算术表达式算术操作符和算术表达式o赋值操作符和赋值表达式赋值操作符和赋值表达式o自增、自减操作符自增、自减操作符o逻辑操作符和逻辑表达式逻辑操作符和逻辑表达式o位运算与位操作符位运算与位操作符o逗号操作符和逗号表达式逗号操作符和逗号表达式osizeof()操
5、作符操作符o关系操作符关系操作符o条件操作符条件操作符o其它操作符其它操作符一、算术操作符一、算术操作符优先级优先级操作符操作符名名称称高高+正,单目正,单目-负,单目负,单目*乘,双目乘,双目/除,双目除,双目%求余,双目求余,双目+加,双目加,双目低低-减,双目减,双目当两个操作数均为整数时,当两个操作数均为整数时,*和和/重载为重载为整乘整乘和和整整除除,结果为整数,除法运算后舍去小数取整。如:,结果为整数,除法运算后舍去小数取整。如:5/45/4/结果为结果为1 1,整数,整数当两个操作数均为整数时,当两个操作数均为整数时,%定义为定义为求余求余运算,运算,也称求模运算,结果为两个整数
6、相除后的余数。也称求模运算,结果为两个整数相除后的余数。如果两个整数中有负数,则先用两数绝对值求如果两个整数中有负数,则先用两数绝对值求余,最后结果的余,最后结果的符号与被除数相同符号与被除数相同。整数的算术运算整数的算术运算举例举例:o6%3/结果为结果为0o6%7/结果为结果为6o7%6/结果为结果为1o-7%6/结果为结果为-1o7%-6/结果为结果为1o-7%-6/结果为结果为-1只要有一个操作数是实数,两个操作数均只要有一个操作数是实数,两个操作数均转换为转换为doubledouble型,型,*和和/重载为普通的重载为普通的乘乘和和除除,结,结果果是实数是实数。实数的算术运算实数的算
7、术运算5.0/4/结果为结果为1.25,实数,实数5/4.0/结果为结果为1.25,实数,实数5/4/整除,结果为整除,结果为1二、自增、自减操作符二、自增、自减操作符使变量当前值加使变量当前值加1 1或减或减1 1,再赋给该变量自己再赋给该变量自己:i+或或+i/相当于相当于i=i+1j-或或-j/相当于相当于j=j1inti=5,j=5,m,n;m=i+;/后置;相当于后置;相当于m=i;i=i+1;/结果:结果:i的值为的值为6,m的值为的值为5;n=+j;/前置;相当于前置;相当于j=j+1;n=j;/结果:结果:j的值为的值为6,n的值为的值为6;例题例题3-1#include us
8、ing namespace std;int main()int a,b,m=3,n=4;a=7*2+-3%5-4/3;b=m+-n;coutatbt mtnendl;return 0;三、条件操作符三、条件操作符 o条件操作符是条件操作符是C+中唯一的三目操中唯一的三目操作符,它的形式如下:作符,它的形式如下:操作数操作数1?操作数操作数2:操作数操作数3if(操作数操作数1)操作数操作数2;else操作数操作数3;例题例题3-4#include using namespace std;int main()int a=3,b=4,c;c=ab?+a:+b;couta,b,cendl;c=a-b
9、?a-3?b:b-a:a;couta,b,cendl;return 0;四、逻辑操作符四、逻辑操作符逻辑运算:逻辑运算:用于判断分析。用于判断分析。在在C+中,两个逻辑值中,两个逻辑值true和和false与整数与整数之间有一个对应关系,真对应之间有一个对应关系,真对应1,假对应,假对应0;反过来,;反过来,0对应假,非对应假,非0整数对应真。整数对应真。所所以逻辑运算结果可以作为整数参与算术运以逻辑运算结果可以作为整数参与算术运算、关系运算、逻辑运算及其他运算。算、关系运算、逻辑运算及其他运算。逻逻辑辑运运算算规规则则操作符操作符第一个操作数第一个操作数第二个操作数第二个操作数运算运算结果果
10、逻辑与逻辑与(&)truetruetruefalsetruefalsetruefalsefalsefalsefalsefalse逻辑或逻辑或(|)truetruetruefalsetruetruetruefalsetruefalsefalsefalse逻辑非(!)逻辑非(!)truefalsefalsetrue五、关系操作符五、关系操作符关系操作符完成两个操作数大小的比较,结关系操作符完成两个操作数大小的比较,结果为逻辑值果为逻辑值true(true(真真)或或falsefalse(假)(假)。每种。每种可比较大小可比较大小的数据类型,都的数据类型,都重载重载了关系操作了关系操作符。不同类型的
11、数据将自动转换为同一类型符。不同类型的数据将自动转换为同一类型后进行比较。后进行比较。操作符操作符 名字名字实例实例说明说明=等于等于5=5;结果为结果为1!=不等于不等于5!=5;结果为结果为0小于小于5 5.5;结果为结果为1=小于或等于小于或等于5 大于大于5 5.5;结果为结果为0=大于或等于大于或等于6.3=5;结果为结果为1操作符操作符 名字名字实例实例说明说明!逻辑非逻辑非!(5=5);结果为结果为0&逻辑与逻辑与5 6&6 6;结果为结果为0|逻辑或逻辑或5 6|6 1&n1&n8&n14&n8&n14&n18)y%4=0&y%100!=0|y%400=0y%4=0&y%100
12、!=0|y%400=0 由于由于逻辑值逻辑值和和整数整数之间的之间的对应关系,对应关系,也允也允许许整型整型和和字符型字符型操作数进行操作数进行逻辑运算逻辑运算:21&021&0/逻辑与,逻辑与,2121与与0 0,结果为假:,结果为假:0 021|021|0/逻辑或,逻辑或,2121或或0 0,结果为真:,结果为真:1 1!21!21/逻辑非,逻辑非,2121的非,结果为假:的非,结果为假:0 0运算结果同样可以作为一个运算结果同样可以作为一个整数整数参与其他运算。参与其他运算。逻辑表达式计算时,逻辑表达式计算时,逻辑非逻辑非优先级最高,优先级最高,关关系运算系运算其次,其次,逻辑与逻辑与和
13、和逻辑或逻辑或最低。最低。已已 知知:int a=10,b=20,c=30;float x=1.8,y=2.4;按按优先级优先级与与结合性结合性,其,其求值顺序求值顺序等同于:等同于:(ay)|(a(b-(!c)t1=1t2=0t4=0-&t3=0t5=bt6=1|得整个表达式的值为:得整个表达式的值为:1ay|ab-!c在求逻辑表达式值的过程中,一旦表达式的在求逻辑表达式值的过程中,一旦表达式的值能够确定,就不再逐步进行以后的运算。值能够确定,就不再逐步进行以后的运算。称为称为“求值优化求值优化”。已知已知:inta=10,b=20,c=30;求:求:ab|c+/结果以及结果以及a,b,c的
14、的值值t1=1整个表达式的值为整个表达式的值为 1 1可见可见:表达式表达式 c+c+已不需要计算已不需要计算所以所以:c不变仍为不变仍为30六、位操作符六、位操作符(1)按位取反操作符)按位取反操作符“”(2)左移操作符)左移操作符“”(4)按位与操作符)按位与操作符“&”(5)按位或操作符)按位或操作符“|”(6)按位异或操作符)按位异或操作符“”c+c+语言提供了位运算,它对操作数的各个位进行操作。语言提供了位运算,它对操作数的各个位进行操作。(1 1)按位取反操作符)按位取反操作符“”“”将操作数的每个二进制位取反,即将操作数的每个二进制位取反,即1 1变为变为0 0,0 0变为变为1
15、 1。例如,整数例如,整数a a的值为的值为1001101110011011,则,则aa的值为的值为0110010001100100。(2 2)左移运算符)左移运算符“”“”运算一般格式为:运算一般格式为:ana”“”与左移运算符类同,将左操作数向右移动右操作数指定与左移运算符类同,将左操作数向右移动右操作数指定的二进制位数,忽略移位后的小数部分,并在高位补的二进制位数,忽略移位后的小数部分,并在高位补0 0。一个整数右移一个整数右移n n位相当于位相当于除以除以2 2的的n n次方,但比除法快。次方,但比除法快。在在VC+6.0VC+6.0中有符号数右移时高位补符号位,严格对应除中有符号数右
16、移时高位补符号位,严格对应除法:法:-323 /-32右移右移3位,由位,由11100000B得得11111100B,即,即-4将两个操作数的对应位逐一进行按位逻辑与运将两个操作数的对应位逐一进行按位逻辑与运算。运算规则为:对应位均为算。运算规则为:对应位均为1 1时,该位运算时,该位运算结果为结果为1 1;否则为;否则为0 0。例如:。例如:a 01001101a 01001101b 00001111b 00001111a&b 00001101a&b 00001101该运算可用来将整数的某些位置该运算可用来将整数的某些位置0 0,而保留所,而保留所需要的位,上例保留了低四位。需要的位,上例保
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作 表达式

限制150内