|I will surely read the article, i see a lot many interesting points there.
But before that, just a little curious,
1. j++ = 5 //OK. Printed value is 5, after that it becomes 6
2. ++i = 6 //OK. First i is incremented to 6 then printed out
3. ++j = 6 //Incorrect.j will first be incremented then printed out. But note that present value of j is 6 (from step 1). So j at this stage becomes 7.
4. i++ = 6 //OK. i now is 7 after printing
5. j++ = 6 //Incorrect. Should have been 7
6. ++i = 7 //Incorrect. Should have been 8
Just to make things a little simpler
i = j = 5;
printf("%d %d %d\n",i++,i++,i++);
Now the output is:
5 5 5
Even if the beahviour is compiler-specific how do you interpret this example (or even the first one)?