#include<stdio.h>
int swap(int *num1,int *num2) //异或方法交换
{
*num1=*num1^*num2;
*num2=*num1^*num2;
*num1=*num1^*num2;
return 0;
}
int main()
{
int num1,num2;
printf("please enter the num1>");
scanf("%d",&num1);
printf("please enter the num2>");
scanf("%d",&num2);
swap(&num1,&num2);
printf("After change num1=%d\n",num1);
printf("After change num2=%d\n",num2);
return 0;
}
异或举例:
num1:010(2) num2:011(3)
tmp=num1^num2=001=1
num2=tmp^num2=010=2
num1=tmp^num2=011=3