#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;


}

wKiom1Ziqhbg9DBpAAA9tZOmAoU488.png



//利用按位异或来交换两位数的值

#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;


}

wKiom1Ziqo3ASAjuAAAhNuS-sxw117.png



//交换两个变量数值还可以用“加减,乘除”的办法来交换

加减:

n1=n1+n2;

n2=n1-n2;

n2=ni-n2;


乘除与加减相同。(乘除时 n2 不能等于0)



//应当注意的是,利用加减乘除这种办法交换数值时要考虑数据的溢出,当数据过于大时就会溢出,而此时就会出现结果错误甚至其他情况。而利用异或的方法就不会不出现此种情况。