文章目录
方式一:tmp临时变量
优点思路清晰,缺点开辟一个额外空间
int a = 1, b = 2, tmp;
tmp = a;
a = b;
b = tmp;
方式二:求和
先求 a 与 b 的和给 a,然后拿这个和去减 b 的值就是 a 的值再给 b,这时候我们再把和减去新的 b 的值就是 a 的值了,思路繁琐一些,但是不需要开辟额外空间,但是在a + b
时有可能导致 int 溢出,这个需要注意
int a = 1, b = 2;
a = a + b;
b = a - b;
a = a - b;
求和可以,求积其实也可以的,逻辑是一样的。其实异或运算也是可以的,但是异或平时用的少,我这把它放在第三种方式里头了
方式三:异或运算异或运算满足两数相同,异或为 0,不同的话异或不为 0,任何一个数和 0 异或都等于那个数本身
int a = 1, b = 2;
a = a ^ b;
b = a ^ b;
a = a ^ b;
或者直接写成如下形式,是不是很有美感呢?
int a = 1, b = 2;
a ^= b;
b ^= a;
a ^= b;