Precedence | Operator | Description | Associativity | 1 | ::
Scope resolutionLeft-to-right2 | ++
--
Suffix/postfix increment and decrement()
Function call[]
Array subscripting.
Element selection by reference->
Element selection through pointer3 | ++
--
Prefix increment and decrementRight-to-left+
−
Unary plus and minus!
~
Logical NOT and bitwise NOT(type)
Type cast*
Indirection (dereference)&
Address-ofsizeof
Size-ofnew
, new[]
Dynamic memory allocationdelete
, delete[]
Dynamic memory deallocation4 | .*
->*
Pointer to memberLeft-to-right5 | *
/
%
Multiplication, division, and remainder6 | +
−
Addition and subtraction7 | <<
>>
Bitwise left shift and right shift8 | <
<=
For relational operators < and ≤ respectively>
>=
For relational operators > and ≥ respectively9 | ==
!=
For relational = and ≠ respectively10 | &
Bitwise AND11 | ^
Bitwise XOR (exclusive or)12 | |
Bitwise OR (inclusive or)13 | &&
Logical AND14 | ||
Logical OR15 | ?:
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 OR16 | throw
Throw operator (for exceptions)17 | ,
CommaLeft-to-right