c++运算符优先级
优先级 |
操作符 |
描述 |
例子 |
结合性 |
1 |
() |
调节优先级的括号操作符 |
(a + b) / 4; |
从左到右 |
2 |
! |
逻辑取反操作符 |
if( !done ) ... |
从右到左 |
3 |
->* |
在指针上通过指向成员的指针访问成员的操作符 |
ptr->*var = 24; |
从左到右 |
4 |
* |
乘法操作符 |
int i = 2 * 4; |
从左到右 |
5 |
+ |
加法操作符 |
int i = 2 + 3; |
从左到右 |
6 |
<< |
按位左移操作符 |
int flags = 33
<< 1; |
从左到右 |
7 |
< |
小于比较操作符 |
if( i < 42 ) ... |
从左到右 |
8 |
== |
等于比较操作符 |
if( i == 42 ) ... |
从左到右 |
9 |
& |
按位与操作符 |
flags = flags & 42; |
从左到右 |
10 |
^ |
按位异或操作符 |
flags = flags ^ 42; |
从左到右 |
11 |
| |
按位或操作符 |
flags = flags | 42; |
从左到右 |
12 |
&& |
逻辑与操作符 |
if( conditionA && conditionB ) ... |
从左到右 |
13 |
|| |
逻辑或操作符 |
if( conditionA || conditionB ) ... |
从左到右 |
14 |
? : |
三元条件操作符 |
int i = (a > b) ? a : b; |
从右到左 |
15 |
= |
赋值操作符 |
int a = b; |
从右到左 |
16 |
, |
逗号操作符 |
for( i = 0, j = 0; i < 10; i++, j++ ) ... |
从左到右 |