In C++, the order in which operators are evaluated in an expression is determined by the precedence of the respective operator. If operators have the same precedence, then the order of evaluation is determined by their associativity. Understanding the C++ operator precedence is important in order to achieve the goals of writing logically correct and efficient code.

## Ranking the Operator Precedence in C++

C++ has a wide range of operators, each having a different level of precedence. In the table below, the operators with higher precedence or lower ranks are evaluated first, and operators with the same precedence are evaluated from left to right using the associativity rule.

From the above table, we can deduce how the C++ Operator Precedence works in actual expression while performing the order of execution. In the next section, we will be going through examples that can strengthen up our knowledge of C++ Operator Precedence application.

## Handling Similar Precedence with Associativity

In case the C++ Operator Precedence is the same then the tiebreaker is performed by taking associativity to resolve that which is either left to right or from right to left.

The evaluation of operators from the left of the expression to right is known as left-to-right associativity. For instance, in the expression a – b – c, the subtraction operators are evaluated from left to right, resulting in (a – b) – c.

On the other hand, right-to-left associativity pertains to the evaluation of operators from the right side of the expression to the left. An example of this is the assignment operator =, which has right-to-left associativity. Thus, in the expression a = b = c, the assignment is executed from right to left, and the expression is equivalent to a = (b = c).

## Understanding C++ Operator Precedence Through Examples

Now that we have some solid knowledge of C++ Operator Precedence, let us look at an example to understand the working.

**Example 1 of C++ Operator Precedence:**

`Expression: 4 / 2 * 3 - 1 `

In this expression, multiplication and division have the same precedence order. Therefore, we will evaluate them from left to right, according to their associativity rule, which is left-to-right for both multiplication and division.

- First, we will evaluate 4 / 2, which will leave us with the result 2.
- Then, we will evaluate 2 * 3, which will give us 6.
- Finally, we will evaluate 6 – 1, the only left expression to compute giving us the answer as 5.

**Example 2 of C++ Operator Precedence:**

`Expression: 3 | 6 + 2`

This expression has two operations, bitwise OR and an addition operator, with both having different precedence ranks. We can take help from the above table to decide which to evaluate first.

According to the precedence rules, the addition operator has a higher precedence than the bitwise OR operator.

So, we must evaluate the addition operation first. Thus, we add 6 and 2, which results in 8, and the expression becomes 3 | 8.

On further solving the OR of both the digits that can be defined as below,

```
0011
1000
----
1011
```

We get the answer of the expression as 11 as above mentioned answer depicts the binary form (1011).

**Conclusion**

In this article, we studied C++ Operator Precedence by covering up the basic concepts and studied further the table and how the combination of precedence and associativity can help us solve through an expression in C++ Programming Language. We also studied various example cases to solidify our knowledge of C++ Operator Precedence.

Hope you liked this article as we expect you to learn from other PrepBytes blogs.

## Frequently Asked Questions

**1. What is operator associativity in C++?**

Operator associativity refers to the direction in which operators with the same precedence are evaluated. Most operators in C++ are left-associative, which means they are evaluated from left to right. However, some operators, such as the assignment operator (=), are right-associative, which means they are evaluated from right to left.

**2. How can I change the order of operator precedence in C++?**

You can change the order of operator precedence in C++ by using parentheses to group parts of an expression together. Operators inside parentheses are always evaluated first, regardless of their precedence. For example, in the expression a + b * c, if you want b and c to be evaluated first, you can write it as a + (b * c).

**3. What is operator precedence in C++?**

Operator precedence refers to the order in which operators are evaluated in an expression. Operators with higher precedence are evaluated first, and operators with the same precedence are evaluated from left to right.

**4. What is the order of operator precedence in C++?**

Refer to the above table in section 2.