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