• Home
  • 3.24 Operator Precedence

3.24 Operator Precedence

View Categories

3.24 Operator Precedence

Operator precedence determines the order in which operators are grouped when an expression contains multiple operators. Operators with higher precedence are grouped before operators with lower precedence.

#include <stdio.h>

int main()
{
    int result;

    result = 10 + 5 * 2;

    printf("result = %d\n", result);

    return 0;
}

Example Output #

result = 20

Explanation #

The expression:

10 + 5 * 2

contains + and *. Multiplication has higher precedence than addition, so it is grouped first:

10 + (5 * 2)

The result is therefore 20.

Parentheses have higher precedence than the operators inside the expression and can be used to explicitly change the grouping:

result = (10 + 5) * 2;

This produces 30.

Operator Precedence Table #

The following table lists the commonly used C operators from higher precedence to lower precedence.

Precedence Operators Description Associativity
1 () [] . -> Function call, array subscript, member access Left-to-right
2 ++ -- + - ! ~ sizeof (type) Unary operators, sizeof, cast Right-to-left
3 * / % Multiplication, division, remainder Left-to-right
4 + - Addition, subtraction Left-to-right
5 << >> Bitwise shifts Left-to-right
6 < <= > >= Relational operators Left-to-right
7 == != Equality operators Left-to-right
8 & Bitwise AND Left-to-right
9 ^ Bitwise XOR Left-to-right
10 | Bitwise OR Left-to-right
11 && Logical AND Left-to-right
12 || Logical OR Left-to-right
13 ?: Conditional operator Right-to-left
14 = += -= *= /= %= <<= >>= &= ^= |= Assignment operators Right-to-left
15 , Comma operator Left-to-right

Precedence determines grouping; associativity determines grouping when operators have the same precedence.

Powered by BetterDocs

Leave a Reply

Your email address will not be published. Required fields are marked *