**Operator precedence** describes the way in which the operations are evaluated. When we have several operations in an expression, each part is evaluated and resolved in a predetermined order decided by the operator precedence.

Operators having higher precedence are solved first as compared to the lower precedence operators.

For example:

**5+3*7** // it gives 26

This is so because the multiplication operator (“*”) has higher precedence over the addition operator (“+”), thus the expression 3 * 7 will be solved first and the result of it (i.e., 21) becomes the right operand for the addition, and then the addition is performed as 5 + 21 which returns 26.

**Associativity** defines how the operators having the same precedence are evaluated.

For example:

**10*5/2** // it gives 25

(“*”) and (“/”) have the same precedence and “left to right” associativity; therefore, 10*5 evaluated first, then its result (50) becomes the second operand for (“/”) and after that 50/2 is evaluated which gives 25.

Operator
Meaning of operator
Associativity
Rank
**()**
**[]**
**->**
**.**
Functional call (Parentheses)
Array element reference
Indirect member selection
Direct member selection
Left to right
1
**!**
** ~**
** +**
** -**
**++**
**--**
**&**
** ***
**sizeof**
**(type)**
Logical negation
Bitwise(1 's) complement
Unary plus
Unary minus
Increment
Decrement
Address-Of Operator
Pointer reference(indirection)
Returns the size of an object
Type cast(conversion)
Right to left
2
*****
** /**
** %**
Multiply
Divide
Remainder(modulo-division)
Left to right
3
**+**
** -**
Addition
Subtraction
Left to right
4
**<<**
**>>**
Left shift
Right shift
Left to right
5
**<**
**<=**
**>**
**>=**
Less than
Less than or equal
Greater than
Greater than or equal
Left to right
6
**==**
**!=**
Equal to
Not equal to
Left to right
7
**&**
Bitwise AND
Left to right
8
**^**
Bitwise exclusive OR
Left to right
9
**|**
Bitwise OR
Left to right
10
**&&**
Logical AND
Left to right
11
**||**
Logical OR
Left to right
12
**?:**
Conditional Operator
Left to right
13
**=**
***=**
**/=**
**%=**
**+=**
**-=**
**&=**
**^=**
**|=**
**<<=**
**>>=**
Assignment Operator
Short-Hand Assignment
Operators
Right to left
14
**,**
Comma(separator)
Left to right
15