C运算符优先级
C运算符优先级
下表列出C运算符的优先级和结合性。运算符从上到下以降序列出。
优先级 | 运算符 | 描述 | 结合性 |
---|---|---|---|
1 | ++ – | 后缀自增与自减 | 从左到右 |
() | 函数调用 | ||
[] | 数组下标 | ||
. | 结构体与联合体成员访问 | ||
-> | 结构体与联合体成员通过指针访问 | ||
{type}{list} | 复合字面量(C99) | ||
2 | ++ – | 前缀自增与自减 | 从右到左 |
+ - | 一元加与减 | ||
! ~ | 逻辑非与逐位非 | ||
(type) | 转型 | ||
* | 间接(解引用) | ||
& | 取址 | ||
sizeof | 取大小 | ||
_Alignof | 对齐要求(C11) | ||
3 | * / % | 乘法-除法-余数 | 从左到右 |
4 | + - | 加法-减法 | |
5 | << >> | 逐位左移 右移 | |
6 | < <= | ||
> >= | |||
7 | == != | ||
8 | & | 逐位与 | |
9 | ^ | 逐位异或 | |
10 | | | 逐位或 | |
11 | && | 逻辑与 | |
12 | || | 逻辑或 | |
13 | ? : | 三元条件 | 从右到左 |
14 | = | ||
+= -= | |||
*= /= %= | |||
<<= >>= | 逐位左移右移 | ||
&= ^= |= | 逐位与-异或-赋值 | ||
15 | , | 逗号 | 从左到右 |
C运算符优先级
http://blog.jinmajue.site/posts/5a7450ff/