算术运算符
运算符 | 作用 | 举例 |
---|---|---|
+ | 加法;一目取正 | a+b , +c |
- | 减法,一目取负 | a - b , -c |
* | 乘法 | a*b |
/ | 除法 | a/b |
% | 模运算(取余) | a%b '%'左右皆为整形 |
++ | 自加1 | a++ , ++a (分别参与运算前后自加) |
-- | 自减1 | 同上 |
关系运算符
(表达式的值为 '真' 或 '假')
运算符 | 作用 | 举例 |
---|---|---|
> | 大于 | a>b |
>= | 大于等于 | a>=5 |
< | 小于 | 3<x |
<= | 小于等于 | x<=y+1 |
== | 等于 | x+1==0 |
!= | 不等于 | c!='\0' |
逻辑运算符
运算符 | 作用 | 规则 |
---|---|---|
|| | 逻辑或 | 有真为真,无真为假 |
&& | 逻辑与 | 全真为真,有假为假 |
! | 逻辑反(非) | 取反 |
位运算符
(转换为二进制后的逻辑运算)
运算符 | 作用 | 规则 |
---|---|---|
~ | 位逻辑反 | 先位取反,再取反(符号位不取反)加一 |
& | 位逻辑与 | 同为真时取真 |
| | 位逻辑或 | 此三者按位与逻辑运算符规则相同 |
^ | 位异或 | 相同为0,不同为1 |
>> | 逻辑右移 | x>>n 右移n位,移出位舍去 空余位补0 无论有无符号 |
<< | 逻辑左移 | 同上(方向相反) |
注释:
- 以上左移右移为"逻辑左移""逻辑右移",算数右移时,移除位舍弃,空余位补最高位的拷贝
- 未将有效位移除时,左移相当于乘2,右移相当于除2
- 通过位运算符,还可实现清零和置位功能
其他运算符
运算符 | |
---|---|
复合赋值运算符 | +=、-=、*=、/=、%=、>>=、<<=、&=、^=、|= |
条件运算符 | ?= 格式:<表达式1>?<表达式2>:<表达式3> |
sizeof运算符 | sizeof 格式:sizeof(操作数) |
逗号运算符 | 优先级最低,从左到右运算,最右边表达式决定了整个表达式的值 |
赋值运算符 | = |
注:复合赋值运算符的效率更高
提醒:
- 尽量不写过于复杂的表达式
- 表达式过长时多使用圆括号