#include<stdio.h>
int main()
{
int a=1,b=8;
int c=0;
c=a;
a=b;
b=c;
printf("%d %d\n",a,b);
return 0;
}
//利用按位异或来交换两位数的值
#include<stdio.h>
int main()
{
int a=1,b=8;
a=a^b; //先将a,b异或的值赋给a
b=a^b; //b的值为最初a的值(此时已经发生交换)
a=a^b; //a的值为最初b的值(此时已经发生交换)
printf("%d %d\n",a,b);
return 0;
}
//交换两个变量数值还可以用“加减,乘除”的办法来交换
加减:
n1=n1+n2;
n2=n1-n2;
n2=ni-n2;
乘除与加减相同。(乘除时 n2 不能等于0)
//应当注意的是,利用加减乘除这种办法交换数值时要考虑数据的溢出,当数据过于大时就会溢出,而此时就会出现结果错误甚至其他情况。而利用异或的方法就不会不出现此种情况。
转载于:https://blog.51cto.com/10969583/1719905