Operator precedence:
| Category | Operator | Associativity |
|---|---|---|
| Postfix | () [] -> . ++ - - | Left to right |
| Unary | + - ! ~ ++ - - (type)* & sizeof | Right to left |
| Multiplicative | * / % | Left to right |
| Additive | + - | Left to right |
| Shift | << >> | Left to right |
| Relational | < <= > >= | Left to right |
| Equality | == != | Left to right |
| Bitwise AND | & | Left to right |
| Bitwise XOR | ^ | Left to right |
| Bitwise OR | ||
| Logical AND | && | Left to right |
| Logical OR | ||
| Conditional | ?: | Right to left |
| Assignment | = += -= *= /= %=>>= <<= &= ^= | = |
| Comma | , | Left to right |


If shift operator is applied on a number N then, N<<a will give a result N*2^a N>>a will give a result N/2^a