0101 0011
y 0110
x 0011
y 0101
两个2进制数字执行异或操作将不需要声明额外的临时变量即可对换
void swap x y
y x 异或y
x x异或y
y x异或y
void reverse_array (int a[], int cnt) { int first , last; for(first = 0, last = cnt - 1;first <= last;first++,last--) inplace_swap(&a[first]&, a[last]); }
A.对于2k+1 最后一轮循环的first 和 last值是k
B.因为函数inplace_swap的执行 两个相同的值执行异或操作将得0