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