優先序 Precedence
|
運算子 Operator
|
運算類別 Description
|
結合性 Associativity
|
1
|
::
|
Scope resolution
|
左→右
|
2
|
a++ a--
|
Suffix/postfix increment and decrement
|
type() type{}
|
Functional cast
|
a()
|
Function call
|
a[]
|
Subscript
|
. ->
|
Member access
|
3
|
++a --a
|
Prefix increment and decrement
|
右→左
|
+a -a
|
Unary plus and minus
|
! ~
|
Logical NOT and bitwise NOT
|
(type)
|
C-style cast
|
*a
|
Indirection (dereference)
|
&a
|
Address-of
|
sizeof
|
Size-of
|
new new[]
|
Dynamic memory allocation
|
delete delete[]
|
Dynamic memory deallocation
|
4
|
.* ->*
|
Pointer-to-member
|
左→右
|
5
|
a*b a/b a%b
|
Multiplication, division, and remainder
|
6
|
a+b a-b
|
Addition and subtraction
|
7
|
<< >>
|
Bitwise left shift and right shift
|
8
|
<=>
|
Three-way comparison operator (since C++20)
|
9
|
< <=
|
For relational operators < and ≤ respectively
|
> >=
|
For relational operators > and ≥ respectively
|
10
|
== !=
|
For relational operators = and ≠ respectively
|
11
|
&
|
Bitwise AND
|
12
|
^
|
Bitwise XOR (exclusive or)
|
13
|
|
|
Bitwise OR (inclusive or)
|
14
|
&&
|
Logical AND
|
15
|
||
|
Logical OR
|
16
|
a?b:c
|
Ternary conditional
|
右→左
|
throw
|
throw operator
|
=
|
Direct assignment (provided by default for C++ classes)
|
+= -=
|
Compound assignment by sum and difference
|
*= /= %=
|
Compound assignment by product, quotient, and remainder
|
<<= >>=
|
Compound assignment by bitwise left shift and right shift
|
&= ^= |=
|
Compound assignment by bitwise AND, XOR, and OR
|
17
|
,
|
Comma
|
左→右
|