Operator precedence

Precedence (high to low) Operators Description
1 :: Scope resolution (C++ classes)
2 ++ --
()
[]
.
->
Increment and decrement (suffix and postfix)
Function call
Array subscript
Struct and Union member access
Struct and Union member access via pointer
3 ++ --
+ -
! ~
(new type)
*
&
sizeof()
Increment and decrement (prefix)
Unary plus and minus
Logical not and bitwise not
Explicit cast
Dereference (pointer)
Address of
Sizeof function
4 * / % Arithmetic multiply, divide and modulus
5 + -
++ --
Arithmetic plus and minus
Increment and decrement (postfix)
6 << >> Bit-shift right and left
7 < <= > >= Less than, less than or equal, greater than and greater than or equal
8 == != Equal and not equal
9 & Bitwise and
10 ^ Bitwise xor
11 | Bitwise or
12 && Logical and
13 || Logical or
14 ? : Ternary conditional
15 =
+= -= *= /= %=
<<=
>>= &= != ^=
Assignment
Compound arithmetic operators
Compound bit-shift operators
Compound bitwise assignment
16 , Comma

Overloaded operators that you might add in code retain their place in the precedence hierarchy.