1 算术运算符
注意:
1:%是算术运算符的重点,一般将某个数值控制在一定范围内
2:减号也是负号
3:取模运算要求左右两边操作数必须是整形数据
4:单目运算符:
++ — +(正号) -(负号)
a++(先赋值后自加)++a(先自加后赋值)
5:双目运算符
+ – * /
2 关系运算符
注意:
关系运算符用于判断运算符两边的表达式是否满足给定的大小条件
由关系运算符组成的表达式称为关系表达式,其值为布尔型
判断是否相等是双等号==,而不是一个等号
3 逻辑运算符
1:逻辑运算符规则
逻辑反:将逻辑真、假翻转,即真变假,假变真
逻辑与:将两个关系表达式串联起来,当且仅当左右两个表达式都为真时,结果为真。
逻辑或:将两个关系表达式并联起来,当且仅当左右两个表达式都为假时,结果为假。
2:特殊规则
在逻辑与运算中,如果左边表达式的值为假,那么右边表达式将不被执行。
在逻辑或运算中,如果左边表达式的值为真,那么右边表达式将不被执行。
3:计算机的惰性运算
4 位运算符
1 ~ : 按位取反
规则:单目运算符,数据将每一个bit位取反,1变0,0变1
2 & : 按位与(两个都为1,结果才为1 )
1 & 1 == 1
1 & 0 == 0
0 & 0 == 0
0 & 1 == 0
3 | : 按位或(两个都为1,结果才为1 )
1 | 1 == 1
1 | 0 == 1
0 | 1 == 1
0 | 0 == 0
4 ^ : 按位异或 (不同为1,相同为0 )
1 ^ 0 == 1
0 ^ 1 == 1
0 ^ 0 == 0
1 ^ 1 == 0
5 << : 左移,按bit位向左移动
1:无符号左移
2:有符号左移
6 >> : 右移
1:无符号右移
2:有符号右移
注意:
1.在进行移位运算的时候,凡是被移出去的位都丢弃,凡是空出来的都补零,移位运算是针对的是无符号整数。
2. 如果非要进行有符号的移位运算,那么左移的时候,空出来的补0,右移的时候,空出来不符号位(原码阶段);
5 特殊运算符
1:赋值运算符
不能对常量赋值
只能对变量赋值
不能对数组赋值
可以连续赋值,从右往左
赋值运算符的左边(左操作数)必须是可写的地址空间
2:复合赋值符
当左右两边有相同的操作数时,采用复合赋值符不仅直观,且能提高运算效率
除了下述10个复合运算符之外,生造别的复合运算符是非法的
6 条件运算符(三目运算符,重点)
唯一需要三个操作数的运算符
语法:表达式1?表达式2:表达式3
释义:当表达式1为真时,去表达式2,否则取表达式3
7 sizeof运算符
含义:计算指定数据类型或者变量所占据内存的字节数
语法:sizeof(类型)、sizeof(变量),计算变量的字节数时圆括号可以省略
8 return运算符
含义:退出某个函数(如果退出的是主函数main,那么整个程序也就推出)
语法:必须出现在函数体内,可以带函数对应类型的数据
9 逗号表达式
10 优先级与结合性
当表达式出现不同的运算符时,根据优先级来决定谁先执行,比如先乘除后加减
当表达式中出现多个相同优先级的运算符时,更具结合性决定谁先运行,比如从左到右