当表达式包含多个运算符时,运算符的优先级控制着各个运算符执行的顺序。例如,表达式“a+b/c”按“a+(b/c)”计算,因为操作符“/”的优先级比“+”高。运算符的优先级及结合性见表1所示。
表1 运算符的优先级与结合性
|
类别 |
运算符 |
优先级 |
结合性 |
|
基本 |
x.y、f(x)、a[x]、x++、x--、new、typeof、checked、unchecked |
1 |
自右向左 |
|
单目 |
+、-、!、~、++、--、(T)x、~ |
2 |
自左向右 |
|
乘除 |
*, /, % |
3 |
自左向右 |
|
加减 |
+, - |
4 |
自左向右 |
|
移位 |
<<, >> |
5 |
自左向右 |
|
比较 |
<, >, <=, >=,
is, as |
6 |
自左向右 |
|
相等 |
==, != |
7 |
自左向右 |
|
位与 |
& |
8 |
自左向右 |
|
位异或 |
^ |
9 |
自左向右 |
|
位或 |
| |
10 |
自左向右 |
|
逻辑与 |
&& |
11 |
自左向右 |
|
逻辑或 |
|| |
12 |
自左向右 |
|
条件 |
?: |
13 |
自右向左 |
|
赋值 |
=, +=, -=, *=, /=, %=,
&=, |=, ^=, <<=, >>= |
14 |
自右向左 |