一、操作符
1、算数操作符:+ - * % /
这都是比较常见的操作符,需要注意的是%的操作数必须是整形。**对于/如果两个操作数是整数执行整除,而只要有浮点数就执行浮点数除法。
2.移位操作符
<<左移,相当于乘法 11=00001011 <<1=00010110=22=112^1;直接补零
11左移两位相当于2^2;
左移n位相当于扩大2^n;
**>>右移,相当于除法,11=00001011>>1=00000101=5 正数补零,负数补一
移位不能移动负数位!
3.位操作符
& 按位与、| 按位或、^按位异或(相同为零,不同为一)
注意:他们的操作数必须是整数
4.赋值操作符u
5.复合赋值符+=,-=,*= /=…
6、单目操作符
!逻辑取反 -负值 +正值 &取地址 sizeof 在编译期间确定表达式字节大小
**~对一个二进制数按位取反
*间接访问操作符(解引用)
()强制类型转换
注意++i,–i先加减,后使用
i++,i–先使用,后加减
7、关系操作符
**> < <= >= != ==
注意=和==的区分
8、逻辑操作符
&&逻辑与 两边值结果都不为零,返回一
||逻辑或 有一个为真,返回一
注意区分:1&2————0 00000001&00000010=00000000=0
1&&2=1 俩边都是非零数
1|2=3
1||2=1
9、条件操作符
x?y:z
10、逗号表达式
从左到右依次执行,整个表达式的结果是最后一个表达式的结果。
11、整型提升
char a=-1;整型提升后为11111111111111111111111111111(32个1)提升为int型,char8个字节,int 32个字节 有符号整型提升时补符号位
char a2=1整型提升后为0000…0001(31个零)无符号型整型提升高位补0
只要参与比表达式运算就会发生整型提升
char c=1;
sizeof©=1 sizeof(+c)=4 sizeof(-c)=4