598 views
0 votes
0 votes
#include <stdio.h>

int main()
{
    int a=9;
   printf("%d %d %d",++a,a++,++a);

    return 0;
}

what is the output?

According to me it should be     12 10 10

2 Answers

0 votes
0 votes
When parameters are passed to a function, the value of every parameter is evaluated before being passed to the function. What is the order of evaluation of parameters - left-to-right or right-to-left?  Unfortunately, there is no fixed order defined by the C standard. A compiler may choose to evaluate either from left-to-right. So the output is compiler dependent.

Related questions

0 votes
0 votes
1 answer
1
SSR17 asked Feb 29
205 views
#include <stdio.h int main() { int i = -1; int x = (unsigned char)i; printf("%d", x); return 0; }output is 255 , but please explain how
2 votes
2 votes
1 answer
2
rupamsardar asked Aug 30, 2023
468 views
#include <stdio.h int f(int x) { if(x%2==0) { return f(f(x-1)); } else return (x++); } int main() { printf("%d",f(12)); ret...
5 votes
5 votes
2 answers
3
saurabh0709 asked Aug 1, 2023
1,136 views
What will be the output of the following code? _______ #include <stdio.h int main(){ char val=250; int ans; ans= val+ !val + ~val + ++val; printf("%d", ans); return 0; }
2 votes
2 votes
1 answer
4