Industrial manufacturing
Industrial Internet of Things | Industrial materials | Equipment Maintenance and Repair | Industrial programming |
home  MfgRobots >> Industrial manufacturing >  >> Industrial programming >> C Language

Understanding C Operator Precedence & Associativity: A Clear Guide

Precedence of operators

The precedence of operators determines which operator is executed first if there is more than one operator in an expression.

Let us consider an example:

int x = 5 - 17* 6;

In C, the precedence of * is higher than - and =. Hence, 17 * 6 is evaluated first. Then the expression involving - is evaluated as the precedence of - is higher than that of =.

Here's a table of operators precedence from higher to lower. The property of associativity will be discussed shortly.

Operators Precedence & Associativity Table

Operator Meaning of operator Associativity ()
[]
->
. Functional call
Array element reference
Indirect member selection
Direct member selection Left to right !
~
+
-
++
--
&
*
sizeof
(type) Logical negation
Bitwise(1 's) complement
Unary plus
Unary minus
Increment
Decrement
Dereference (Address)
Pointer reference
Returns the size of an object
Typecast (conversion) Right to left *
/
% Multiply
Divide
Remainder Left to right +
- Binary plus(Addition)
Binary minus(subtraction) Left to right <<
>> Left shift
Right shift Left to right <
<=
>
>= Less than
Less than or equal
Greater than
Greater than or equal Left to right ==
!= Equal to
Not equal to Left to right & Bitwise AND Left to right ^ Bitwise exclusive OR Left to right | Bitwise OR Left to right && Logical AND Left to right || Logical OR Left to right ?: Conditional Operator Right to left =
*=
/=
%=
+=
-=
&=
^=
|=
<<=
>>= Simple assignment
Assign product
Assign quotient
Assign remainder
Assign sum
Assign difference
Assign bitwise AND
Assign bitwise XOR
Assign bitwise OR
Assign left shift
Assign right shift Right to left , Separator of expressions Left to right

Associativity of Operators

The associativity of operators determines the direction in which an expression is evaluated. For example,

b = a;

Here, the value of a is assigned to b, and not the other way around. It's because the associativity of the = operator is from right to left.

Also, if two operators of the same precedence (priority) are present, associativity determines the direction in which they execute.

Let us consider an example:

1 == 2 != 3

Here, operators == and != have the same precedence. And, their associativity is from left to right. Hence, 1 == 2 is executed first.

The expression above is equivalent to:

(1 == 2) != 3

Note: If a statement has multiple operators, you can use parentheses () to make the code more readable.

Table of Contents


C Language

  1. C# Constructors: Types, Examples, and Advanced Patterns
  2. Comprehensive C# Tutorial PDF – 243+ Pages of Beginner‑Level Examples (Download Today)
  3. Mastering C# Attributes: Enhance Code with Metadata
  4. Mastering C Input and Output (I/O): scanf() and printf() Explained
  5. C Programming Language: Fundamentals, History, and Applications
  6. Mastering C++ Exception Handling: A Comprehensive Guide
  7. Understanding C++ Type Conversion: Implicit, Explicit, and Casting Techniques
  8. Mastering C Structs: Definition, Variables, Access & Advanced Examples
  9. C# foreach Loops: Iterate Arrays and Collections with Ease
  10. C#: A Comprehensive Overview of Microsoft's Modern Programming Language