>>9-10, >>13
どんな順序でも結果が同じになればいいというわけじゃない。

それがいいなら、a = (i++) * (i++); もいいことになる。

C-FAQ: 3.2, 3.8