常规操作:
#include <stdio.h>
int main()
{
int a;
int b;
int tmp;
while (1)
{
scanf("%d %d", &a, &b);
tmp = a;
a = b;
b = tmp;
printf("%d %d\n", a, b);
}
return 0;
}
烧操作:
不用临时变量,完成交换
#include <stdio.h>
int main()
{
int a, b;
while (1)
{
scanf("%d %d", &a, &b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("%d %d\n", a, b);
}
return 0;
}
异或
C语言表示为 ^
性质一:两个相同的数异或结果为0
性质二:任何一个数和0异或结果为它本身
性质三:异或满足交换律和结合律
a = a ^ b;
b = a ^ b;
a = a ^ b;
a的值为 a ^ b
b的值为 (a ^ b) ^ b = a ^ b ^ b = a ^ 0 = a
a的值为 (a ^ b) ^ a = a ^ b ^ a = 0 ^ b = b