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