質問: x; } int pop() { return S[top--]; } ```
回答: こんにちは。 C++では、2項演算子の左右にある値を評価する順序は処理系に任せられています。 左から順番に評価されるとは限りません。 例えば、`foo()+bar()`のおいて、foo()がbar()より先に実行されることもあれば、bar()がfoo()より先に実行されることもあるという意味です。 'foo() + bar() * baz()`も同様です。foo()、bar()、baz()の実行順序は未定です。それらの結果を演算する順序は演算子の優先順位に従って処理されます。 ですので、副作用のある式(例えば`++n`なども)とその副作用を受ける項を1つの式に含めるのは禁忌です。