Please help me with this, I am having a hard time!!! Code: main() { int x=10, y=15; x = x++; y = ++y; printf(ā%d, %d\nā,x,y); } the result for the above is 10, 16 , if i replace x=x++ with x++ the result is 11,16 so isnt x=x++ and x++ same?? secondly Code: main() { int x=20,y=35; x=y++ + x++; y= ++y + ++x; printf(ā%d%d\nā,x,y); } the answer is 57, 94 on a mingw32-gcc.exe compiler and 56, 93 on a gcc compiler!!! so do different compilers work differently?? Thanks guys
First, read "Before you make a query". If you already have, then you're just being rude. Secondly, the operations you're performing result in undefined operation. The compiler can do anything it likes, including melt your system into a slag heap. Read about sequence points.
x = x++; You are assigning the value to the variable and then incrementing it and so it is 10 y = ++y; You are incrementing the value and then assigning it and so its one more than the original value. x=y++ + x++; y= ++y + ++x; For this try evaluating from Right to left because C is normally Right To Left evaluated and almost all the compilers follow that but as DaWei said you are at the mercy of the compiler to give you results.