swap(a, b): a ^= b b ^= a a ^= b
先明确一下,a ^ a = 0,同时对于一切数x ^ 0 = x
a ^ a = 0
x ^ 0 = x
可以这样理解,第三行:
b ^= a b ^= a ^ b b = b ^ a ^ b b = 0 ^ a b = a
第四行:
a ^= b a = a ^ b a = (原来的a ^ b) ^ 原来的a a = b