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