优先级 | 运算符 | 含义 | 需要运算 对象的个数 | 结合方向 |
1 | ( ) [ ] -> . | 圆括号 下标运算符 指向结构体成员运算符 结构体成员运算符 | 自左往右 | |
2 | ! ~ ++ -- - (类型) * & sizeof | 逻辑非运算符 按位取反运算符 自增运算符 自减运算符 负号运算符 类型转换运算符 间接访问运算符 取指针运算符 长度运算符 | 1 (单目运算符) | 自右往左 |
3 | * / % | 乘法运算符 除法运算符 求余运算符 | 2 (双目运算符) | 自左往右 |
4 | + - | 加法运算符 减法运算符 | 2 (双目运算符) | 自左往右 |
5 | << >> | 左移运算符 右移运算符 | 2 (双目运算符) | 自左往右 |
6 | < <= > >= | 关系运算符 | 2 (双目运算符) | 自左往右 |
7 | == != | 关系运算符 | 2 (双目运算符) | 自左往右 |
8 | & | 按位与运算符 | 2 (双目运算符) | 自左往右 |
9 | ^ | 按位异或运算符 | 2 (双目运算符) | 自左往右 |
10 | | | 按位或运算符 | 2 (双目运算符) | 自左往右 |
11 | && | 逻辑与运算符 | 2 (双目运算符) | 自左往右 |
12 | || | 逻辑或运算符 | 2 (双目运算符) | 自左往右 |
13 | ? : | 条件运算符 | 3 (三目运算符) | 自右往左 |
14 | = += -= *= /= %= >>= <<= &= ^= |= | 赋值运算符 | 2 (双目运算符) | 自右往左 |
15 | , | 逗号运算符 | 2 (双目运算符) | 自左往右 |
参考文献
[1] 王金鹏. C语言可以这样学:MOOC版:题库版:OnlineJudge版[M]. 第2版. 北京:清华大学出版社,2022.