不用临时变量交换两个变量的值
假定a = 1, b = 2; 不用临时变量交换a与b的值
方法一:
a = a + b;
b = a - b;
a = a - b;
第二句 b = a - b,其中 a = a + b,所以有 b = (a + b) - b = a;
第三句 a = a - b,其中 a = a + b,b = (a + b) - b,所以有 a = a + b - [(a + b) - b] = b;
方法二:
a = a ^ b;
b = b ^ a;
a = a ^ b;
第二句 b = b ^ a,其中 a = a ^ b,所以有 b = b ^ (a ^ b) = a ^ 0 = a; 因为 b ^ b = 0;
第三句 a = a ^ b,其中 a = a ^ b,b = b ^ (a ^ b),所以有 a = a ^ b ^ b ^ (a ^ b) = b;