A small puzzle. Why does this code work the way it does?
First of all, the line *(&amp;a-1) += a; is undefined behavior, so this could do anything depending on compiler version, flags used, alignment of the stars, etc.

That said, the reason why it works in your case is probably because &amp;a-1 happens to point to the return address of x, and incrementing it by 8 causes the i = 0; to be skipped.