Operator precedence and the order of evaluation plays a major role when two or more operators are used in a statement.

For example:  a = b + c * d - e / z;

After executing the above statement, which operator will be evaluated first? Whether(a = b) or (b + c) or (c * d ) or (d - e)and so on... The solution to this answer can be given by the below operator precedence table.

We can also remember the priorities of a few operators with BODMAS rules. i.e.

  • B - Brackets
  • O  - Order of (or) Power of
  • D - Division
  • M - Multiplication
  • A - Addition
  • S - Subtraction

Exercise #1:

a = b + c * d - e / z

Let's solve this expression by using the above-given table or the BODMAS  rule. The division has higher priority than multiplication and the priority goes with addition, subtraction, and assignment.

  1. temp1 = e / z
  2. temp2 = c * d
  3. temp3 = b + temp2
  4. temp4 = temp3 - temp1
  5. a = temp4

Note: In the above expression all the operators, except assignment have the left to right evaluation order that is the reason,  why e is divided by z. In the case of the assignment operator, the right-side value is assigned to the left due to the right to left order.

As a good programming practise, we can also change the expression like a = (((b+c) * (d-e)) / z) .  Brackets remove the ambiguity and also improve the code readability.