0
私はJavaで「TEMPのないJavaでスワップ変数」を試してみましたし、私は私を気に何かが見つかりました:私は個人として左端の割り当てを分離した場合、出力はしかし一時的なスワップはJavaでは動作しませんか?
2 vs 0
を示し
int a = 1, b = 2;
b^= a ^= b ^= a;
System.out.println(a + " vs " + b);
を声明:
int a = 1, b = 2;
a ^= b ^= a;
System.out.println(a + " vs " + b);
b^=a;
System.out.println(a + " vs " + b);
出力は
です2 vs 3
2 vs 1
出力が期待通りです。
C++では、右から左への評価が保証されています。言語仕様の点で、Javaがそのような期待された結果を導くことができるとの違いは何ですか?