我是一个搬运工…
优先级 | 运算符 | 描述 | 结合性 |
1 | ++, -- | 后缀自增与自减 | 从左到右 |
() | 函数调用 | ||
[] | 数组下标 | ||
. | 结构体与联合体成员访问 | ||
-> | 结构体与联合体成员通过指针访问 | ||
(type){list} | 复合字面量(C99) | ||
2 | ++, -- | 前缀自增与自减[注 1] | 从右到左 |
+, - | 一元加与减 | ||
!, ~ | 逻辑非与逐位非 | ||
(type) | 类型转型 | ||
* | 间接(解引用) | ||
& | 取址 | ||
sizeof | 取大小[注 2] | ||
_Alignof | 对齐要求(C11) | ||
3 | *, /, % | 乘法、除法及余数 | 从左到右 |
4 | +, - | 加法及减法 | |
5 | <<, >> | 逐位左移及右移 | |
6 | < <= | 分别为 < 与 ≤ 的关系运算符 | |
>, >= | 分别为 > 与 ≥ 的关系运算符 | ||
7 | ==, != | 分别为 = 与 ≠ 关系 | |
8 | & | 逐位与 | |
9 | ^ | 逐位异或(排除或) | |
10 | | | 逐位或(包含或) | |
11 | && | 逻辑与 | |
12 | || | 逻辑或 | |
13 | ?: | 三元条件[注 3] | 从右到左 |
14 | = | 简单赋值 | |
+=, -= | 以和及差赋值 | ||
*=, /=, %= | 以积、商及余数赋值 | ||
<<= >>= | 以逐位左移及右移赋值 | ||
&=, ^=, |= | 以逐位与、异或及或赋值 | ||
15 | , | 逗号 | 从左到右 |