#include <stdio.h>
#include <stdlib.h>
void main()
{
//way1:使用中间变量
int a = 10;
int b = 20;
printf("交换之前:a=%d b=%d\n", a, b);
int temp;
temp = a;
a = b;
b = temp;
printf("使用way1交换之后:a=%d b=%d\n", a, b);
//way2:不使用中间变量
a = a+b;
b = a-b;
a = a-b;
printf("使用way2交换之后:a=%d b=%d\n", a, b);
//way3:不使用中间变量,异或运算
a = a^b;
b = a^b;
a = a^b;
printf("使用way3交换之后:a=%d b=%d\n", a, b);
}
注:异或规则:相同为0,不同为1
由此得到任何数与0异或都是其本身,保持不变。
另外异或满足交换律。