1、3、关系运算符 = = !=,注意=与=的区别,如a=9与a=9。,关系表达式及其值:用关系运算符连接的表达式称关系表达式,关系为真时,表达式的值为1,否则为0。如a=20, b=6; m=ab; 则m等于1。,关系运算符的结合性是从左到右,因此注意串联形式的关系运算符,如cc&ab! 。,4、逻辑运算符:& | !,逻辑表达式:包含逻辑运算的表达式,表达式的结果只有逻辑真(非0,对应值为1)与逻辑假(0,对应值也为0)。,优化算法:C/C+对与、或运算采用优化算法,即前一项已经决定了表达式的值,则不会再算后一项。如:a=0; b=40; a 则b已经非0,a+也不会被运算。,例:要求当整型变
2、量A的值为奇数时,表达式的值为真;当A的值为偶数时,表达式的值为假,以下不满足要求的表达式是( )A、A%2=1 B、!(A%2=0) C、!(A%2) D、A%2,对参与逻辑运算的操作数有:非0即为真! 判断以下表达式的结果:0.1&0.3,0|3.5,!0,1,!3.45,例:执行以下程序段后,a,b,c的值是:int a=0, b=0, c=0;+a|+b|+c;,例:以下程序运行后,输出结果 void main() int a=1, b=2, m=0, n=0, k;k=(n=ba)|(m=ab);printf(“%d %d“,k,m); ,5、3目条件运算符: ? :,运算规则:先判
3、断e1的值是真(非0)是假(0),若e1为真,表达式的值为e2的值,否则取e3的值作为表达式的值。如ab?a:b,例:已知char ch=A;则下列表达式值是( )ch= ( ch=A& ch=Z) ? ( ch+32 ) :ch;A、 Z B、 A C、 a D、 z,格式为:e1?e2:e3;,6、逗号运算符,运算逗号表达式时从左到右依次进行,表达式的值及类型由最右边的表达式决定。,逗号运算符的优先级是所有运算符中最低的。,用逗号将多个表达式连接成一个表达式。如e1,e2,e3,e4。,例:y=3,x=3;cout(+x,y+); 输出什么?,表达式 (a=3*5, a*4, a+5)的值
4、为( ),表达式 (a=3*5, a+,a*4, a+5)的值为( ),7、自增运算符“+”和自减运算符“-”:,1、前缀表达式:+x, -x; 其中x表示变量名,先完成变量的自增自减1运算,再用x的值作为表达式的值;,2、后缀表达式:x+, x-; 先用x的当前值作为表达式的值,再进行自增自减1运算。,如a=8; b=a+; c=+a; 其中赋给变量b的值为表达式(a+)的值,不应该理解为a的值,则b=8, c=10;,注意:自增、自减运算只能用于单个变量,不能用于表达式或常量。,如:+(a+b), 与5+,const int N=0;N+; 等都是错误的。,3、以下语句执行后a,b,c,d
5、的值分别为:a为 ,b为 , c为 ,d为 。a=3;b=5;c=+a*b;d=a+*b;,1、下列程序的输出结果为( )int x=19;cout -x;,2、若a的值为10,则语句printf(“%d”,a+);与printf(“%d”, +a); 的输出结果分别是 和 ;,8、位运算符:按二进制位逐位运算,进行位运算时,首先要将操作数转化为二进制,然后再将对应位进行位运算!操作数不能为浮点型,只能是整型或字符型。,(1)、位反运算符是单目运算符,格式为: 操作数,负数在计算机中用补码表示,求补码的算法是将对应的二进制值按位求反加1。问: 2 3的值为?,(2)、位与运算符,使用格式为:操
6、作数1 操作数2,位与可将操作数的若干位置置0;( 0、1和0求与,结果都为0, 和1求与,结果保持不变),问:表达式1538 和 0x13&0x17的值分别是?,位或可将操作数的若干位置置1; (0 、1和0求或,结果不变,和1求或结果为1),(4)、位或运算符,使用格式为:操作数1 操作数2,问:3319的值为?,(3)、位异或运算符,使用格式为:操作数1 操作数2,位异或可将操作数的若干位置翻转。 (0 、1和0异或,结果保持不变,和1异或发生翻转),问:3578的值为?,移位运算是将整型操作向左或向右移动指定的位数。左移时,移出位被舍弃,右边空出位补0;右移时,移出位被舍弃,空出位补0
7、或符号位。,位运算的结果是表达式的值,不会影响操作数的值。如a2和21。,(5)、移位运算符,使用格式为:操作数1 (或)移位位数,问:352的值为?,9、长度运算符sizeof ,格式:sizeof(表达式),可以得到表达式(变量或数据类型)在内存中所占的字节数。如int a; sizeof(int); sizeof(a);例:2.22, 2.23,sizeof(数组名)时,返回该数组所有元素所占的字节数。,10、单目运算符*和&表示取地址运算,*表示取内容,它们与指针操作相关。,运算符的优先级与结合性,、规则:醋坛酸味灌,味落跳福逗。,、结合性:说明同一个表达式中有多个优先级相同的运算符时,他们之间的运算次序。多数从左到右进行,只有:单目运算符、3目运算符和赋值运算符是从右到左结合的。,设字符变量x的值是064,表达式“xx2&x”的值是?,0333,、复杂运算表达式时,可能造成理解困难,可采用加圆括号(多用),或者双目运算符左右增加一个空格的办法,增强可读性。,