运算符优先级表
优先级 | 运算符 | 描述 | 结合性 |
---|---|---|---|
1 | [] | 数组下标 | 从左到右 |
() | 函数调用或圆括号 | ||
++ , -- | 后缀递增和递减 | ||
-> | 通过指针访问成员 | ||
. | 结构体和联合体成员访问 | ||
2 | ++ , -- | 前缀递增和递减 | 从右到左 |
+ , – | 一元加,一元减 | ||
(type) | 类型转换运算符 | ||
! , ~ | 逻辑非和按位取反 | ||
* | 解引用运算符 | ||
& | 取地址运算符 | ||
sizeof | 获取字节大小 | ||
_Alignof | 对齐要求 | ||
3 | * , / , % | 乘法,除法和取模 | 从左到右 |
4 | + , – | 加法和减法 | 从左到右 |
5 | << , >> | 位左移和位右移 | 从左到右 |
6 | < , <= | 关系运算符 小于 和 小于等于 | 从左到右 |
> , >= | 关系运算符 大于 和 大于等于 | ||
7 | == , != | 关系运算符 等于 和 不等于 | 从左到右 |
8 | & | 位与 | 从左到右 |
9 | ^ | 位异或 (XOR) | 从左到右 |
10 | ` | ` | 位或 (包含 OR) |
11 | && | 逻辑与 | 从左到右 |
12 | ` | ` | |
13 | ?: | 三元条件运算符 | 从右到左 |
14 | = | 赋值 | 从右到左 |
+= , -= | 增强的加法和减法 | ||
*= , /= | 增强的乘法和除法 | ||
%= , &= | 增强的取模和位与 | ||
^= , ` | =` | 增强的位异或和位或 | |
<<= , >>= | 增强的位左移和位右移 | ||
15 | , | 逗号(表达式分隔符) | 从左到右 |