-3
比方说,我有变量保持3和另一个保持5.我需要切换他们的值没有另一个变量。我该怎么做?如何交换两个整数
比方说,我有变量保持3和另一个保持5.我需要切换他们的值没有另一个变量。我该怎么做?如何交换两个整数
它可以通过bitwise XOR做到:
x ^= y;
y ^= x;
x ^= y;
这就是所谓的XOR swap algorithm(维基百科的文章将详细介绍如何工作的,所以我建议你读它)。
然而,这是不是特别理解(更不用提它仅适用于整型),因此在几乎所有环境中使用临时变量将是首选,:
int tmp = x;
x = y;
y = tmp;
为什么你需要做的不使用单独的变量?除了编写令人费解的代码之外,我看不出任何其他原因。这绝对不是现实世界的问题。 –
**如何**不能做?问Yoda。顺便说一句,谷歌,甚至是在旧的普通Wikipeadia中的搜索结果都会让你得到一个很好的,彻底的答案...... – ppeterka
XOR换用低内存芯片的习惯用法。但是一个成熟的编译器会优化它。 –