#includevoid main() { int a = 1, b = 2; a = a ^ b; b = a ^ b; a = a ^ b; printf("a=%d\n", a); printf("b=%d\n", b); }
XOR 性質:x ^ x = 0、x ^ 0 = x、交換律、結合律。
a = a ^ b → a 存 a⊕bb = a ^ b = (a⊕b)⊕b = a → b 得到原 aa = a ^ b = (a⊕b)⊕a = b → a 得到原 bswap(x, x) 會將 x 歸零。