C语言运算符优先级表
运算符优先级与结合性| 优先级 | 运算符 | 描述 | 结合性 |
| 1 | ++,-- | 后缀自增,自减 | 从左往右 |
| () | 函数调用 | ||
| [] | 数组下标 | ||
| . | 结构体与联合体访问成员 | ||
| -> | 结构体与联合体通过指针访问成员 | ||
| (type){list} | 复合字面量(C99) | ||
| 2 | ++,-- | 前缀自增,自减 | 从右往左 |
| +,- | 正,负 | ||
| !,~ | 逻辑非与逐位非 | ||
| (type) | 强制类型转换 | ||
| * | 解引用 | ||
| & | 取址 | ||
| sizeof | 获取某个数据类型所占用空间字节数 | ||
| _Alignof | 对齐要求(C11) | ||
| 3 | *,/,% | 乘法、除法及取余 | 从左往右 |
| 4 | +,- | 加法、减法 | |
| 5 | <<,>> | 逐位左移及右移 | |
| 6 | <,<=,>,>= | 小于,小于等于,大于,大于等于 | |
| 7 | ==,!= | 等于,不等于 | |
| 8 | & | 逐位与 | |
| 9 | ^ | 逐位异或 | |
| 10 | | | 逐位或 | |
| 11 | && | 逻辑与 | |
| 12 | || | 逻辑或 | |
| 13 | ?: | 三元条件 | 从右往左 |
| 14 | = | 简单赋值 | |
| +=,-= | 和,差赋值 | ||
| *=,/=,%= | 积、商及取余赋值 | ||
| <<=,>>= | 逐位左移,右移赋值 | ||
| &=,^=,|= | 逐位与、异或及或赋值 | ||
| 15 | , | 逗号 | 从左往右 |