void swap(int& a,int& b){
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
代码解释:
第一行: a变更为原始a和原始b的异或值
第二行: b变更为当前a异或原始b,也就是原始a异或原始b,再异或原始b,得到结果是原始a
第三行: a变更为当前a异或当前b,当前a为原始a和原始b的异或值,当前b为原始a,所以最终也就是原始a异或原始b,再异或原始a,得到结果是原始b
达成目标
void swap(int& a,int& b){
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
代码解释:
第一行: a变更为原始a和原始b的异或值
第二行: b变更为当前a异或原始b,也就是原始a异或原始b,再异或原始b,得到结果是原始a
第三行: a变更为当前a异或当前b,当前a为原始a和原始b的异或值,当前b为原始a,所以最终也就是原始a异或原始b,再异或原始a,得到结果是原始b
达成目标