1. 算数操作符
在上述操作符中,+, - 、* 我们都很熟悉了。/、% 有两点是需要我们注意的:
1. 对于/运算,如果两边都是整数,则执行整数运算;如果两边有一个为浮点数,则执行的是浮点数操作。
2. %不能用于浮点数,两边都只能是整数,其余四个都可以用于浮点数和整数。
2. 移位操作符
左移操作符移位规则:左边抛弃,右边补0;(有*2的效果)
例如 :6 的二进制补码为 00000000 00000000 00000000 00000110
左移后 00000000 00000000 00000000 00001100
变为12。
右移操作符移位规则分为两种:1. 算数移位:右边丢弃,左边补符号位
2. 逻辑移位:右边丢弃, 左边补0;(右移有/2的效果)
例如:6 的二进制补码为 00000000 00000000 00000000 00000110
右移后 00000000 00000000 00000000 00000011
变为3。
但我们现在一般使用的都是算数移位,假如逻辑移位,就会把负数变为正数,算数运算更符合我们的要求。
注:
1. 对于移位操作符,不要移动负数为,因为这个是标准未定义的。
2. 假如a=6;a<<1;在a没被赋值的情况下,自身的值是不会发生变化的。
3. 位操作符
按位与:5 的二进制补码为 00000000 00000000 00000000 00000101
6 的二进制补码为 00000000 00000000 00000000 00000110
& 00000000 00000000 00000000 00000100
结果为4。
按位或 、按位异或同样道理。
注意:
这三个操作符的运算数必须为整数。
4. 赋值操作符
赋值操作符就相对简单了一点,有:=、+=、-=、/=、%=、>>=、<<=、&=、|=、^=。
例如:a = a >> 1; 就可以表示为 a>>=1;
5. 单目操作符
上述操作符中,需要注意的是:
1. 0为假,非0为真(-1也为真)
2. sizeof是一个操作符,而不是一个函数;并且sizeof内的表达式不计算
3. 前置++:先++后运算
后置++:先运算后++
6. 关系操作符
关系操作符也比较简单,有:>,> = 、<、<=、!=(不相等)、==。
注:=和==和区别,=是赋值操作符,==才是判断是否相等,在编程过程中注意。
7. 逻辑操作符
注意区分 逻辑与和按位与 : 1&2为0
1&&2为1
逻辑或和按位或: 1|2为3
1 || 2为1
注:
1.如果有 A&&B&&C,A、B、C为三个条件,运算过程中,从A到B再到C,只要A为假,后面两个表达式就不用运算了,如果A 为真,则继续往后运算,以此类推
2. 如果有 A || B || C,A、B、C为三个条件,运算过程中,从A到B再到C,只要A为真,后面两个表达式就不用运算了,如果A 为假,则继续往后运算,以此类推
8. 条件操作符
格式:exp1 ? exp2 : exp3
例如:if(a> 5)
b = 3;
else
b = -3;
转化为三目表达式为:b = a > 5 ? 3 : -3;
9.逗号表达式
格式:exp1,exp2,exp3 .....
从左向右依次执行,整个表达式的结果为最后一个表达式的结果。