交换两个变量(不创建临时变量)
不允许创建临时变量,交换两个整数的内容
代码实现:
#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