[...]
[...]
That's because function parameters are evaluated right to left.
Not necessarily. They may be, but they also may be evaluated left to
right, or in some other order - or even in no order at all; it's
possible for them to be evaluated in parallel (on hardware where that's
possible) or interleaved.
Also, ++n does not necessarily mean that the increment happens before
the value is fetched. The value resulting from ++n is the value after
the increment, yes (assuming the increment actually happens - when
we're in "undefined behaviour" territory, it might not). But there is
no guarantee that this value is written to n (or anywhere else) until
the next sequence point.
/~\ The ASCII der Mouse
\ / Ribbon Campaign
X Against HTML mouse at rodents.montreal.qc.ca
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B