A Brief Information of Operators Precedence in C

A Brief Information of Operators Precedence in C
Techiio-author
Written by Shuvhojit DebFebruary 9, 2022
8 min read
C
2 VIEWS 0 LIKES 0 DISLIKES SHARE
0 LIKES 0 DISLIKES 2 VIEWS SHARE
Techiio-author
Shuvhojit Deb

Full Stack Developer

Today we'll discuss the operators precedence in the C language.

Introduction:

Operator priority in C tells you which driver is performed first, next, and so on in an expression with further than one driver with different priority. This plays a pivotal part while we're performing day-to-day computation operations. Operator priority in C is used to determine the order of the drivers to calculate the accurate affair. Gap has the loftiest priority whereas comma has the smallest priority inC.

Let’s suppose we have addition, multiplication, division, subtraction, etc. in a single statement. If we do not have this precedence concept then I have simply started calculating from left to right or right to left. But this is not correct because there is sometimes addition, multiplication, and division at starting of the statement, etc. So the user may or may not follow proper order for these operators. So to make a unique solution for calculating the original outcomes developers have introduced this precedence.

Syntax:-

5+2*10/1-3+([++4]-5*2-1);

Code:-

int out=1+4*10/2;
Calculate Left to Right then output 25.
Calculate Right to Left then output 21.
Now calculate based on precedence first *, followed by /,+.
4*10=40
40/2=20
20+1=21

Precedence Operators in Single Statement:

What Happens if the same Precedence Operators come in a Single statement? If we get 2 the same precedences appearing in an expression, then it is said to be “Associativity”. Now, in this case, we can calculate this statement either from Left to right or right to left because both are having the same precedence.

Syntax:-

5+10+20; //Same output we will get if we calculate from left to right or right to left.

Operator’s precedence table:-

blogpost

Precedence with Variables:-

blogpost

Examples of Operators Precedence in C:

Below are the examples of Operators Precedence in C:

Example #1 – Parenthesis Precedence

Code:-

//used to include basice c library files
#include <stdio.h>
//main method for run the C application
int main()
{
//declaring variables
int a,b;
double output;
//Asking user to enter 2 numbers as input
printf("Please enter any 2 numbers \n");
//store 2 numbers in 2 variables
scanf("%d\n\t%d",&a,&b);
//assigning resultant of operators to a variable
output=(a-b)*(a+b*a)+a/b;
//displaying output
//first precedence given to (), followed by / and +
printf("output of %d and %d is = %lf ",a, b,output);
return 0;
}

Output:-

blogpost

Explanation:-

  • The first compiler reads the entire output statement and starts calculating based on precedence. As we discussed above first precedence is given to parenthesis(()). If inside parenthesis also has more than 2 parameters with different operators then inside parenthesis also followed precedence rule.
  • (10-2)=8 and (10+2*10)=10+20=30
  • 8*30=240
  • 10/2=5
  • 240+5=245
  • Therefore we got an output of 245.

Example #2 – Precedence with Arithmetic Operators

Code:-

//used to include basic c library files
#include <stdio.h>
//main method for run the C application
int main()
{
//declaring variables
int a,b;
double output;
//Asking user to enter 2 numbers as input
printf("Please enter any 2 numbers  \n");
//store 2 numbers in 2 variables
scanf("%d\n\t%d",&a,&b);
//assigning resultant of operators to a variable
output=a+b*b-a/b%a;
//displaying output
//first precedence given to *, followed by /, %, + and -
printf("Output of %d and %d is =%lf ",a, b,output);
return 0;
}

Output:-

blogpost

Explanation:-

  • In the above example precedence order is *, /, %, + and -.
  • b*b=>5*5=25
  • a/b=>10/5=2
  • a/b/%a=>a/b is already 2 so 2%5=2
  • a+b*b=>10+25=35
  • a+b*b-a/b%a=>35-2=33
  • So therefore we got output as 33.

Example #3 – Same Addition Associativity with Functions

Code:-

//used to include basice c library files
#include <stdio.h>
//main method for run the C application
//defining methods
int function1();
int function2();
int function3();
int main()
{
//assigning resultant of operators to a variable
int output=function1()+function2()+function3();
//displaying output
//equal precedence operators so we can calculate in any order, get same output
printf("Output of associativity is= %d ",output);
return 0;
}
//method definination
int function1()
{
//declaring variables
int a;
//Asking user to enter 2 numbers as input
printf("Please enter any number \n");
//store a number in a variable
scanf("%d",&a)
return a;
}
//method definination
int function2()
{
//declaring variables
int a;
//Asking user to enter 2 numbers as input
printf("Please enter any number \n");
//store a number in a variable
scanf("%d",&a);
return a;
}
//method definination
int function3()
{
//declaring variables
int a;
//Asking user to enter 2 numbers as input
printf("Please enter any number \n");
//store a number in a variable
scanf("%d",&a);
return a;
}

Output:-

blogpost

Example #4

Code:-

//used to include basice c library files
#include <stdio.h>
//main method for run the C application
int main()
{
//declaring variables
int a;
//assign values to a variable
a=1,2,3,4,5,6,7,8;
//displaying output
//, has least precedence
printf("\n Output of a variable is = %d ",a);
return 0;
}

Output:-

blogpost

Explanation:- From the above output, we got to know that the comma precedence least of all the operators in C.

C Language
Operator
Programming
Operators Precedence
2 VIEWS 0 LIKES 0 DISLIKES SHARE
0 LIKES 0 DISLIKES 2 VIEWS SHARE
Was this blog helpful?
techiio-price-plantechiio-price-plantechiio-price-plantechiio-price-plantechiio-price-plan
You must be Logged in to comment
Code Block
Techiio-logo

Techiio is on the journey to build an ocean of technical knowledge, scouring the emerging stars in process and proffering them to the corporate world.

Follow us on:

Subscribe to get latest updates

You can unsubscribe anytime from getting updates from us
Developed and maintained by Wikiance
Developed and maintained by Wikiance