explain output of int x = 4; x = x + x + x++; printf("%d\n",x); x = 4; printf("%d\n",x + x + x++); output of above code is 13 12
x++ means: first read the current value of x and then increment its value. so in the statement: x = x + x + x++ what happens is as follows: x = 4 + 4 + 4 = 12 then the "post increment" on x is applied (i.e. x++) resulting in x getting the value 13 In the second statement: printf("%d\n",x + x + x++); the same thing happens, except this time the result of "x + x + x++" is printed out first and then the current value of x is incremented - which in this case would mean x would end up with a value of 5.
it doesn't work on #define p(x) printf("%d\n",x); int x = 4; x = x + x++ + x; p(x); x = 4; p(x + x++ + x); same output 13 12
what do you mean by it doesn't work?
according to ur explanation first + is evaluated then increment but post increment has higher precedence than normal addition and assignment operator so it should be evaluated first
post increment always occurs AFTER the value has been read and processed
thanks i get it.
yw :)
Join our real-time social learning platform and learn together with your friends!