交换两个空间的值,不依赖第三个空间的方法
通常交换两个空间的值,需要借助第三方空间,如下代码:
int c = b;
b = a;
a = c;
但是可以采用运算,来实现不依赖第三方空间进行交换。我们假设a的值是x, b的值是y,可以看一下过程
// 可能溢出
a = a + b; // a = x + y
b = a - b; // b = x + y - y = x
a = a - b; // a = x + y - x = y
或者是异或操作
a = a ^ b; // a = x ^ y
b = a ^ b; // b = x ^ y ^ y = x
a = a ^ b; // a = x ^ y ^ x = y