第3章 运算符、表达式

1、i++和++i的区别

(1)++a和a++,都是个表达式,最后的结果就取决于是先加,还是后加;

(2)如果是先加,那么最后的表达式的结果就是a的值加1;

(3)如果是后加的话,则表达式的值就是原来a的值;

(4)无论是先加,还是后加,a的值计算后一定会加1;

2、^的使用

“^”的意思是:当两个操作数对应位不相同时结果的相应位即为一,否则为零。当然,这里的对应位是指二进制的位。

3、条件表达式的意义

条件语句:
if(a>b) max=a;
else max=b;
可用条件表达式写为
max=(a>b)?a:b;

执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max.

4、&&和&的区别

&&:逻辑与,前后条件同时满足表达式为真。&:按位与。

5、||和|的区别

||:逻辑或,前后条件只要有一个满足表达式为真。|:按位或。

6、&&和||使用的注意点

&& 优先级比 || 优先级高 ,同一优先级从左往右计算。|| 或操作,|| 为界将表达式分为两部分,他会先算前一部分,如果前一部分为真,他将停止运算,如果为假,他才会算第二部分。&&且操作 ,&&为界将表达式分为两部分,他会先算前一部分,如果前一部分为假,他将停止运算,如果为真,他才会算第二部分。

7、优先级问题

(1).的优先级高于*,->操作符用于消除这个问题。

(2)[]高于*。

(3)函数()高于*。

(4)==和!=高于位操作。

(5)==和!=高于赋值符。

(6)算术运算符高于移位运算符。

(7)逗号运算符在所有运算符中优先级最低。

8、左移和右移的注意点

左移运算符“<<”是双目运算符,其功能把“<<”左边的运算数的各二进制全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。右移运算符“>>”是双目运算符,其功能是把“>>”左边的运算符的各二进制位全部右移若干位,“>>”右边的数指定移动的位数。但注意:对于有符号位,在右移时,符号位将随同移动,当为正数时,最高位补0;而为负数时,符号位为1,最高位是补0或是补1取决于编译系统的规定。

9、使用条件表达式的注意点

(1)条件表达式的运算优先级低于关系运算符和算术运算符,但高于赋值符。

(2)条件运算符“?”和“:”是一对运算符,不能分开单独使用。

(3)条件运算符的结合方向是自右至左。

10、位操作运算符

按位与运算符“&”是双目运算符,其功能是参与运算的两个数字对应的二进制位相与。
按位或运算符“|”是双目运算符,其功能是参与运算的两个数字对应的二进制位相或。
按位异或运算符“^”是双目运算符,其功能是参与运算的两个数字对应的二进制位相异或,当两对应的二进位相异时,结果为1.

左移运算符“<<”是双目运算符,其功能把“<<”左边的运算数的各二进制全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。

右移运算符“>>”是双目运算符,其功能是把“>>”左边的运算符的各二进制位全部右移若干位,“>>”右边的数指定移动的位数。

猜你喜欢

转载自blog.csdn.net/dada12138/article/details/82949830