不允许创建临时变量,交换两个整数的内容
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 3;
int b = 4;
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("%d %d", a, b);
return 0;
}
^为异或运算符是将两个数的二进制进行比较相同取0不同取1,所以一个数与自己异或结果为1
故先将?? ?a = a ^ b;再?? ?b = a ^ b即为b=a^b^b所以b就已经等于了a再用同样的方法将a的值变为b