优先级 | 运算符 | 名称与含义 | 使用形式 | 结合方向 | 说明 |
1 | [] | 数组下标 | 数组名[ int] | 左到右 | |
() | 圆括号 | ||||
. | 成员选择(对象) | ||||
-> | 成员选择(指针) | ||||
2 | - | 负号运算符 | -表达式 | 右到左 | |
~ | 按位取反 | ~表达式 | |||
++ | 自增 | ++变量名/变量名++ | |||
-- | 自减 | --变量名/变量名-- | |||
* | 指针取值 | 指针变量 | |||
& | 变量取地址 | &变量名 | |||
! | 逻辑非 | !表达式 | |||
(type) | 强制类型转换 | (type)变量名 | |||
sizeof | 长度运算 | sizeof(表达式) | |||
3 | / | 除法 | a/b | 从左到右 | |
* | 乘法 | a*b | |||
% | 求余 | a%b | 整型表达式(整数) | ||
4 | + | 加法 | a+b | ||
- | 减法 | a-b | |||
5 | << | 左移 | a<<b | 必须为整数 | |
>> | 右移 | b>>a | |||
6 | > | 大于 | a>b | 从左到右 | 比较运算符 |
>= | 大于等于 | a>=b | |||
< | 小于 | ||||
<= | 小于等于 | ||||
7 | == | 等于 | |||
!= | 不等于 | ||||
8 | & | 按位与 | a&b | 从左到右 | |
9 | ^ | 按位异或 | a^b | ||
10 | | | 按位或 | a|b | ||
11 | && | 逻辑与 | a&&b | ||
12 | || | 逻辑或 | a||b | ||
13 | ? : | 条件运算符 | 表达式1 ? 值1 :值2 | 从右向左 | |
14 | = | 从右向左 |
都需要求值后再赋值, 所以优先级比较低 |
||
/= | |||||
*= | |||||
%= | |||||
+= | |||||
-= | |||||
<<= | |||||
>>= | |||||
&= | |||||
^= | |||||
|= | |||||
15 | , | 逗号运算符 | 表达式1,表达式2...... | 从左向右 |