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