C运算符的优先级与结合性

优先级运算符含义运算类型结合方向
1()
[]
->
.
++ --
圆括号、函数参数表
数组元素下标
指向结构体成员
引用结构体成员
后缀增1、后缀减1
自左向右
2!
~
++ --
-
*
&
(类型标识符)
sizeof
逻辑非
按位取反
前缀增1、前缀减1
取负
间接寻址运算符
取地址运算符
强制类型转换运算符
计算字节数运算符
单目运算符自右向左
3*
/
%


整数求余
双目算数运算自左向右
4+
-

双目算数运算自左向右
5<<
>>
左移
右移
位运算自左向右
6< <=
> >=
小于、小于等于
大于、大于等于
关系运算自左向右
7== !=等于 不等于关系运算自左向右
8&按位与位运算自左向右
9^按位异或位运算自左向右
10|按位或位运算自左向右
11&&逻辑与逻辑运算自左向右
12||逻辑或逻辑运算自左向右
13?:条件运算符三目运算符自右向左
14=
+= -= *=
/= %= &= ^=
|= <<= >>=
赋值运算符
复合的赋值运算符
双目运算自右向左
15,逗号运算符顺序求值运算自左向右