思路:可是使用^按位异或来实现两个数的交换
^按位异或(二进制数):两个数相同,结果为0,两个数不同,结果为1
a^0=a
a^a=0
具体代码:
#include<stdio.h>
#include<stdlib.h>
int main() {
int a = 10; //01010
int b = 20; //10100
a = a^b; //11110(30)
b = a^b; //01010(10)
a = a^b; //10100(20)
printf("a = %d b = %d\n", a, b);
system("pause");
return 0;
}
运行结果: