-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 回答