首页 > 代码库 > C++ - Operator Precedence

C++ - Operator Precedence

The following table lists the precedence and associativity of C++ operators. Operators are listed top to bottom, in descending precedence.

PrecedenceOperatorDescriptionAssociativity
1::Scope resolutionLeft-to-right
2++  --Suffix/postfix increment and decrement
type()type{}Function-style type cast
()Function call
[]Array subscripting
.Element selection by reference
->Element selection through pointer
3++  --Prefix increment and decrementRight-to-left
+  -Unary plus and minus
!  ~Logical NOT and bitwise NOT
(type)C-style type cast
*Indirection (dereference)
&Address-of
sizeofSize-of
new,new[]Dynamic memory allocation
delete,delete[]Dynamic memory deallocation
4.*  ->*Pointer to memberLeft-to-right
5*  /  %Multiplication, division, and remainder
6+  -Addition and subtraction
7<<  >>Bitwise left shift and right shift
8<  <=For relational operators < and ≤ respectively
>  >=For relational operators > and ≥ respectively
9==  !=For relational = and ≠ respectively
10&Bitwise AND
11^Bitwise XOR (exclusive or)
12|Bitwise OR (inclusive or)
13&&Logical AND
14||Logical OR
15?:Ternary conditionalRight-to-left
=Direct assignment (provided by default for C++ classes)
+=  -=Assignment by sum and difference
*=  /=  %=Assignment by product, quotient, and remainder
<<=  >>=Assignment by bitwise left shift and right shift
&=  ^=  |=Assignment by bitwise AND, XOR, and OR
16throwThrow operator (for exceptions)
17,CommaLeft-to-right

C++ - Operator Precedence