优先级:
单目 > 双目 > 三目 > 赋值
在双目运算中:
算术运算 > 位移 > 关系运算 > 位逻辑 > 逻辑运算
优先级 | 运算符 | 含义 | 运算类型 | 结合方向 |
---|---|---|---|---|
1 | () | 圆括号、函数参数表 | —— | 自左向右 |
[] | 数组元素下标 | |||
-> | 指向结构体成员 | |||
. | 引用结构体成员 | |||
++(后缀)、–(后缀) | 后缀增1、后缀减1 | |||
2 | ! | 逻辑非 | 单目运算 | 自右向左 |
~ | 按位取反 | |||
++ – | 增1、减1 | |||
- | 求负 | |||
* | 间接寻址运算符 | |||
& | 取地址运算符 | |||
(类型标识符) | 强制类型转换运算符 | |||
sizeof | 计算字节数运算符 | |||
3 | * / % | 乘、除、整数求余 | 算数运算符 | 自左向右 |
4 | + - | 加、减 | 算数运算符 | 自左向右 |
5 | << >> | 左移、右移 | 位移运算 | 自左向右 |
6 | < <= | 小于、小于等于 | 关系运算 | 自左向右 |
> >= | 大于、大于等于 | 关系运算 | 自左向右 | |
7 | = != | 等于、不等于 | 关系运算 | 自左向右 |
8 | & | 按位与 | 位运算 | 自左向右 |
9 | ^ | 按位异或 | 位运算 | 自左向右 |
10 | | | 按位或 | 位运算 | 自左向右 |
11 | && | 逻辑与 | 逻辑运算 | 自左向右 |
12 | || | 逻辑非 | 逻辑运算 | 自左向右 |
13 | ?: | 条件运算符 | 三目运算 | 自右向左 |
14 | = | 赋值运算符 | 双目运算 | 自右向左 |
+= -= *= | 复合的赋值运算符 | |||
/= %= &= ^= | ||||
|= <<= >>= | ||||
15 | , | 逗号运算符 | 顺序求值运算 | 自左向右 |