int main()
{
int n1=1;
int n2=10;
printf("原数值n1=%d,n2=%d\n",n1,n2);
//采用中间变量方式交换数值
int temp=n1;
n1=n2;
n2=temp;
printf("第一次交换后n1=%d,n2=%d\n",n1,n2);
//采用加减法交换数值
n1=n2-n1;
n2=n2-n1;
n1=n2+n1;
printf("第二次交换后n1=%d,n2=%d\n",n1,n2);
//采用异或的方式交换数值
/*
a^b^c --相当于-- a^c^b --相当于-- c^b^a ...
a^a 结果为 0
a^0 结果为 a
*/
n1=n1^n2;
n2=n1^n2;
n1=n1^n2;
printf("第三次交换后n1=%d,n2=%d\n",n1,n2);
}
输出结果
原数值n1=1,n2=10
第一次交换后n1=10,n2=1
第二次交换后n1=1,n2=10
第三次交换后n1=10,n2=1