Operator precedence tells the computer which math or logic steps to do first when there are many in one line.
Operator precedence
expression with multiple operators, e.g., a + b * c - d / e
Operators with higher precedence run before operators with lower precedence.
Use parentheses () to change the order if needed.
int result = 2 + 3 * 4;
int result = (2 + 3) * 4;
int result = 10 / 2 + 3;
int result = 10 / (2 + 3);
This program shows how operator precedence works with multiplication, division, addition, and parentheses.
#include <stdio.h> int main() { int a = 5, b = 10, c = 2; int result1 = a + b * c; // multiplication first int result2 = (a + b) * c; // parentheses change order int result3 = b / c - a; // division then subtraction int result4 = b / (c - a); // parentheses first printf("result1 = %d\n", result1); printf("result2 = %d\n", result2); printf("result3 = %d\n", result3); printf("result4 = %d\n", result4); return 0; }
Remember that multiplication (*) and division (/) have higher precedence than addition (+) and subtraction (-).
Use parentheses to make your code clear and avoid mistakes.
Operator precedence applies to all operators, including logical and bitwise ones, but start with math operators first.
Operator precedence decides which part of an expression runs first.
Multiplication and division happen before addition and subtraction.
Use parentheses to control the order and make your code easier to read.
Practice
3 + 4 * 5?Solution
Step 1: Recall operator precedence rules
Multiplication and division have higher precedence than addition and subtraction in C.Step 2: Identify operators in the expression
The expression has addition (+) and multiplication (*). Multiplication runs first.Final Answer:
Multiplication (*) -> Option DQuick Check:
Multiplication > Addition [OK]
- Thinking addition runs before multiplication
- Ignoring operator precedence
- Assuming left to right always applies
Solution
Step 1: Understand the desired calculation
Add 2 and 3 first, then multiply by 4.Step 2: Check parentheses usage
Only (2 + 3) * 4 uses parentheses to add 2 and 3 first, then multiply by 4.Final Answer:
(2 + 3) * 4 -> Option AQuick Check:
Parentheses change order to add first [OK]
- Ignoring parentheses and trusting default precedence
- Misreading the expression order
- Assuming left to right overrides precedence
int x = 5 + 3 * 2 - 4 / 2;
printf("%d", x);Solution
Step 1: Apply operator precedence
Multiplication and division first: 3 * 2 = 6, 4 / 2 = 2.Step 2: Calculate the expression left to right
Expression becomes 5 + 6 - 2 = 9.Final Answer:
9 -> Option BQuick Check:
5 + 6 - 2 = 9 [OK]
- Adding before multiplying
- Dividing after subtraction
- Calculating left to right ignoring precedence
int result = 10 / 2 * 3 + 4 - 5;
Solution
Step 1: Check operator precedence and associativity
Multiplication (*) and division (/) have the same precedence and are evaluated left to right.Step 2: Verify the expression evaluation order
Expression evaluates as ((10 / 2) * 3) + 4 - 5, which is correct.Final Answer:
Multiplication and division have the same precedence and are left to right -> Option AQuick Check:
* and / same precedence, left to right [OK]
- Thinking division happens after addition
- Assuming addition has higher precedence
- Ignoring left-to-right rule for same precedence
int y = 8 - 3 + 2 * 4 / 2;, which parentheses placement changes the result to 14?Solution
Step 1: Calculate original expression
* and / first left-to-right: 2 * 4 = 8, 8 / 2 = 4; then 8 - 3 + 4 = 9.Step 2: Evaluate (8 - 3 + 2) * 4 / 2
(8 - 3 + 2) = 7, 7 * 4 = 28, 28 / 2 = 14.Step 3: Confirm others
8 - (3 + 2) * 4 / 2 = 8 - 20 / 2 = 8 - 10 = -2; 8 - 3 + (2 * 4) / 2 = 9; (8 - (3 + 2)) * 4 / 2 = 3 * 4 / 2 = 6.Final Answer:
(8 - 3 + 2) * 4 / 2 -> Option CQuick Check:
Parentheses force addition before multiplication [OK]
- Assuming original order always applies
- Not recalculating expression after adding parentheses
- Misplacing parentheses without recalculating
Ready to prove it?
Pass the test and this pattern moves unknown
