运算优先级

以下是按优先级排序的所有运算的完整表格。

优先级

符号

说明

示例

结合性

0

::

作用域解析

n1 :: n2

1

()

分组

(e1)

1

[]

索引

[e1]

1

.

取消引用

n1.n2

1

++

后缀递增

e1++

1

-

后缀递减

e1--

2

!

逻辑“非”

!e1

2

~

按位补码(反转)

~e1

2

+

一元加法

+e1

2

-

一元减法

-e1

2

++

前缀递增

++e1

2

-

前缀递减

--e1

2

(type)

类型强制转换

(n1)

2

&

取地址

&n1

3

*

乘法

e1 * e2

3

/

除法

e1 / e2

3

%

模除法

e1 % e2

4

+

加法

e1 + e2

4

-

减法

e1 - e2

5

<<

左移

e1 << e2

5

>>

右移

e1 >> e2

6

<

小于

e1 < e2

6

>

大于

e1 > e2

6

<=

小于等于

e1 <= e2

6

>=

大于等于

e1 >= e2

7

==

等于

e1 == e2

7

!=

不等于

e1 != e2

8

&

按位“与”

e1 & e2

9

^

按位“异或”

e1 ^ e2

10

|

按位“或”

e1 | e2

11

&&

逻辑“与”

e1 && e2

12

||

逻辑“或”

e1 || e2

13

?:

三元条件

c1 ? e1 : e2

14

=

赋值

e1 = e2

14

+=

赋值加法

e1 += e2

14

-=

赋值减法

e1 -= e2

14

*=

赋值乘法

e1 *= e2

14

/=

赋值除法

e1 /= e2

14

%=

赋值模除法

e1 %= e2

14

<<=

赋值左移

e1 <<= e2

14

>>=

赋值右移

e1 >>= e2

14

&=

赋值按位“与”

e1 &= e2

14

|=

赋值按位“或”

e1 |= e2

14

^=

赋值按位“与/或”

e1 ^= e2

15

,

逗号

e1 , e2

如上所述,方括号用于指定数组元素的索引,因此具有最高的优先级。

除了之前讨论过的运算符,本节还包含一些我们未遇到过的运算符。

我们将学习面向对象的编程 (OOP) 中涉及的 作用域解析 运算符 '::'。同时我们还需学习取消引用操作符 '.'。类型(类)的标识符及其特性(并非表达式)充当它们的操作数。

在 OOP 中,取地址运算符 & 旨在 通过引用进行函数参数传递 并获取 对象地址 。在这两种情况下,运算符都作用于变量(左值)。

显式类型强制转换运算将在 下一章中介绍 中介绍。