21. 运算符优先级
优先级 |
运算符 |
描述 |
---|---|---|
0 |
:: |
作用域运算符 |
1 |
[] |
下标运算 |
() |
圆括号 |
|
-> |
指向运算符 |
|
. |
成员运算符 |
|
++ |
自增(后缀) |
|
-- |
自减(后缀) |
|
2 |
! |
逻辑非 |
~ |
按位反 |
|
++ |
自增(前缀) |
|
-- |
自减(前缀) |
|
- |
负号 |
|
+ |
正号 |
|
(类型) |
类型转换 |
|
* |
指针运算符 |
|
& |
取地址 |
|
sizeof |
长度运算 |
|
3 |
* |
乘法 |
/ |
除法 |
|
% |
求余 |
|
4 |
+ |
加法 |
- |
减法 |
|
5 |
<< |
左移位 |
>> |
右移位 |
|
6 |
< <= > >= |
关系运算符 |
7 |
== |
等于 |
!= |
不等于 |
|
8 |
& |
按位与 |
9 |
^ |
按位异或 |
10 |
| |
按位或 |
11 |
&& |
逻辑与 |
12 |
|| |
逻辑或 |
13 |
? : |
条件运算符 |
14 |
= += -= *= /= %= &= |= ^= <<= >>= |
赋值运算符 |
15 |
, |
逗号运算符 |
Note
位运算的优先级是:~
> &
> ^
> |
。
逻辑运算的优先级是:!
> &&
> ||
。
不能重载的运算符:.
,? :
,sizeof
,.*
, ::
。
逻辑与:exp1 && exp2
,如果 exp1
值为 0,则不对 exp2
求值。
逻辑或:exp1 || exp2
,如果 exp1
值为 1,则不对 exp2
求值。
21.1. 参考资料
Operator Overloading