2

そこで、quora の記事で 2 つの数字を交換するコードのスニペットに出くわしました。

a = a + b - (b = a);

私はこれを試してみましたが、うまくいきました。しかし、b = a括弧内にあるので、 b の値に最初の a の値を割り当てるべきではありませんか? a + a - a そして、全体がその価値を維持するようになるべきですか?

で試しa = b + (b = a);てみa = 5 b = 10たところ、最終的に = 10 になりました。こちらを参照してくださいa = a + a

なぜこの異常?

4

3 に答える 3

-1

コメントで述べたように、それは未定義の動作です。コードは、PEMDAS を使用する代わりに、左から右に直接読み取られます。

于 2013-08-06T03:05:18.433 に答える