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 |