运算符优先级和结合性
优先级 | 运算符 | 含义 | 运算对象个数 | 结合顺序 | |
1 | () | 初等运算符 | 自左至右 | ||
[] | 下标运算符 | ||||
-> | 指向结构体成员运算符 | ||||
. | 结构体成员运算符 | ||||
2 | ! | 单目运算符 | 1(单目运算符) | 自右至左 | |
~ | |||||
++ | |||||
-- | |||||
- | 负号 | ||||
* | 指针运算符 | ||||
& | |||||
sizeof | |||||
(类型) | 类型转换运算符 | ||||
3 | * | 乘法 | 算数运算符 | 2(双目运算符) | 自左至右 |
/ | |||||
% | |||||
4 | + | 2(双目运算符) | 自左至右 | ||
- | |||||
5 | << | 2(双目运算符) | 自左至右 | ||
>> | |||||
6 | < <= > >= | 关系运算符 | 2(双目运算符) | 自左至右 | |
7 | == != | 2(双目运算符) | 自左至右 | ||
8 | & | 与 | 位运算符 | 2(双目运算符) | 自左至右 |
9 | ^ | 2(双目运算符) | 自左至右 | ||
10 | | | 2(双目运算符) | 自左至右 | ||
11 | && | 逻辑运算符 | 2(双目运算符) | 自左至右 | |
12 | || | 2(双目运算符) | 自左至右 | ||
13 | ?: | 三目运算符 | 条件运算符 | 3 | 自右至左 |
14 |
= += -= *= /= %= >>= <<= &= ^= |
赋值运算符 | 赋值运算符 | 自右至左 | |
15 | , | 自左至右 |
单目运算符->算数运算符->关系运算符->位运算符(不包括!)->逻辑运算符->条件运算符->赋值运算符->逗号运算符