结合性:左结合是从左到右依次执行,右结合是从右到左依次执行。
特点总结:个人对一些特别的优先级的理解。
优先级 |
运算符 |
名称或作用 |
运算类型 |
结合方向 |
特点总结 |
1 |
() [] -> . |
小括号运算符 下标运算符 指向结构成员运算符 结构成员运算符 |
|
左结合 |
|
2 |
! ~ ++,-- - (类型) *,& sizeof |
逻辑非运算符 按位取反运算符 自增/减运算符 负号运算符 类型转换运算符 指针/取地址运算符 求类型长度运算符 |
单目运算 |
右结合 |
|
3 |
*,/,% |
乘法/除法/求余运算符 |
双目运算、算术运算 |
左结合 |
乘除取余优先于加减 |
4 |
+,- |
加法/减法运算符 |
双目运算、算术运算 |
左结合 |
|
5 |
<<,>> |
左移/右移运算符 |
双目运算、位运算 |
左结合 |
位移低于算术运算 于是在二分时可以写 mid = l + r >> 1(虽不建议) |
6 |
<,<=,>,>= |
小于/小于等于/大于/大于等于 |
双目运算、关系运算 |
左结合 |
大小比较优先于等于/不等于比较 |
7 |
==,!= |
判等/判不等运算符 |
双目运算 |
左结合 |
|
8 |
& |
按位与 |
双目运算、位运算 |
左结合 |
|
9 |
^ |
按位异或 |
双目运算、位运算 |
左结合 |
|
10 |
| |
按位或 |
双目运算、位运算 |
左结合 |
|
11 |
&& |
逻辑与 |
双目运算、逻辑运算 |
左结合 |
“与”的优先级高于“或” |
12 |
|| |
逻辑或 |
双目运算、逻辑运算 |
左结合 |
|
13 |
?: |
条件运算符 |
三目运算 |
右结合 |
|
14 |
=,+=,-=,*=,/=,%= >>=,<<=,&=,^=,|= |
赋值运算符 |
双目运算 |
右结合 |
|
15 |
, |
逗号运算符(顺序求值运算符) |
|
左结合 |
|