Operator Precedence and Associativity

The table below lists the C and C++ operators and their precedence and associativity values. The highest precedence level is at the top of the table.

Symbol Name or Meaning Associativity
Highest Precedence
++ Post-increment Left to right
-- Post-decrement
( ) Function call
[ ] Array element
-> Pointer to structure member
. Structure or union member
++ Pre-increment Right to left
-- Pre-decrement
! Logical NOT
~ Bitwise NOT
- Unary minus
+ Unary plus
& Address
* Indirection
sizeof Size in bytes
new Allocate program memory
delete Deallocate program memory
(type) Type cast [for example, (float) i]
.* Pointer to member (objects) Left to right
->* Pointer to member (pointers)
* Multiply Left to right
/ Divide
% Remainder
+ Add Left to right
- Subtract
<< Left shift Left to right
>> Right shift
< Less than Left to right
<= Less than or equal to
> Greater than
>= Greater than or equal to
== Equal Left to right
!= Not equal
& Bitwise AND Left to right
^ Bitwise exclusive OR Left to right
| Bitwise OR Left to right
&& Logical AND Left to right
|| Logical OR Left to right
? : Conditional Right to left
= Assignment Right to left
*=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |= Compound assignment
, Comma Left to right
Lowest Precedence