运算符的优先级与结合性,见表C。
表C 运算符的优先级与结合性
分 类 |
运 算 符 |
含 义 |
优 先 级 |
初等运算符 |
( ) [ ] -> . |
圆括号 下标 指向结构体成员 引用结构体成员 |
1 |
单目运算符 |
! ~ ++ -- - (类型) * & sizeof |
逻辑非 按位取反 自增 自减 负号 类型转换 指针 取地址 长度 |
2 |
算术运算符 |
* / % |
乘法 除法 求余 |
3 |
+ - |
加法 减法 |
4 | |
位运算符 |
<< >> |
左移 右移 |
5 |
关系运算符 |
< <= > >= |
关系 |
6 |
== != |
等于 不等 |
7 | |
续上表 | |||
分 类 |
运 算 符 |
含 义 |
优 先 级 |
位运算符 |
& |
按位与 |
8 |
^ |
按位异或 |
9 | |
| |
按位或 |
10 | |
逻辑运算符 |
&& |
逻辑与 |
11 |
|| |
逻辑或 |
12 | |
条件运算符 |
?: |
条件 |
13 |
赋值运算符 |
= += -= *= /= %= >>= <<= &= ^= |= |
赋值 |
14 |
逗号运算符 |
, |
逗号 |
15 |
注:①运算符的优先级,按照初等、单目、算术、位关系、位逻辑、条件、赋值、逗号的顺序,由高到低。位运算符的优先级比较分散,<<和>>在关系运算符的前面,&、^、|在关系运算符的后面,~被当成单目运算符。
②运算符的结合性,单目运算符、条件运算符、赋值运算符是从右向左,其余是从左向右。