交换两个变量通常会使用中间变量temp:
temp=x;
x=y;
y=temp;
那如何不使用中间变量也能实现两个变量的交换呢?
这里有两种方法:
方法1:
x=x+y;
y=x-y;
x=x-y;
这种方法虽然可以不使用中间变量,但是有溢出的风险。
方法2:
x=x^y;
y=x^y;
x=x^y;
利用异或的性质:一个数和两个相同的数异或,值不变。此方法只能适用于整形变量
总结:不使用中间变量交换两个数虽然可以实现,但是局限性比较大,因此我们再编写代码过程中大多数情况下还是会选择使用中间变量来交换两个变量的位置。