-3

3 を保持する変数と 5 を保持する別の変数があるとします。別の変数なしでそれらの値を切り替える必要があります。どうすればいいですか?

4

1 に答える 1

1

ビット単位の XORを使用して実行できます。

x ^= y;
y ^= x;
x ^= y;

これは、XOR スワップ アルゴリズムとして知られています(ウィキペディアの記事で、この仕組みについて詳しく説明されているので、一読することをお勧めします)。

ただし、これは特に理解できるものではありません (整数型でのみ機能することは言うまでもありません)。そのため、ほぼすべてのコンテキストで一時変数を使用することが推奨されます。

int tmp = x;
x = y;
y = tmp;
于 2013-10-05T19:47:45.517 に答える