异或(^):不同为1,相同为0。或者理解为不进位的二进制加法。
a = a ^ b;---1 b = a ^ b;---2 a = a ^ b;---3
其结果是两者交换了,为什么呢? 由①式可得:新的a(记为new_a) = a ^ b ②式:b = new_a ^ b = a ^ b ^ b = a ^ (b ^ b)=a ^ 0 = a 即new_b = a ③式:a = new_a ^ new_b = a ^ b ^ a = b
这样就完成了交换。