What is evaluation order of function parameters in C?

CServer Side ProgrammingProgramming

We pass different arguments into some functions. Now one questions may come in our mind, that what the order of evaluation of the function parameters. Is it left to right, or right to left?

To check the evaluation order we will use a simple program. Here some parameters are passing. From the output we can find how they are evaluated.

Example Code

#include<stdio.h>
void test_function(int x, int y, int z) {
   printf("The value of x: %d\n", x);
   printf("The value of y: %d\n", y);
   printf("The value of z: %d\n", z);
}
main() {
   int a = 10;
   test_function(a++, a++, a++);
}

Output

The value of x: 12
The value of y: 11
The value of z: 10

From this output we can easily understand the evaluation sequence. At first the z is taken, so it is holding 10, then y is taken, so it is 11, and finally x is taken. So the value is 12.

raja
Published on 09-Apr-2019 09:17:28
Advertisements