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. 参考资料

  1. Operator Overloading