运算法则:
①交换率结合率
② 1 ^ 0 =1 1 ^ 1=0 0 ^ 0 =0 x(任意值) ^ 0 = x
int a=a0,b=b0,c=c0;
a=a^b;
解析:a=a0^b0;
b=a^b;
解析:b=(a0^b0)^b0=a0^(b0^b0)=a0^0=a0;
a=a^b;
解析:a=(a0^b0)^b0=a0^(b0^a0)=b0^(a0^a0)=b0^0=b0;
所以,此时 printf("%d,%d\n",a,b); 的结果就应该为 b0,a0,通过三次异或运算就将他们调换了。