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