交换两个数不介入变量

来源:百度知道 编辑:UC知道 时间:2024/05/08 14:49:58
交换两个数不介入变量
什么意思?有人知道么~?
我没分了,有谁知道的话 告之一二
下次追加~!

就是不利用中间变量交换两个数。如果是整数的话,这样做,利用异或操作:
a ^= b;
b ^= a;
a ^= b;

原理: a^b^b == a

如果是浮点数或者其他复杂的类型,就没办法了

1
a = a+b;
b = a-b;
a = a-b;
2
a = a^b;
b = a^b;
a = a^b;

刚看了楼上li_yinan - 举人 五级 的回答,就看第1个就是错的。
a=a+b;此时a 的值已经变成a与b之和,b=a-b;此时b的值已经变成a 的值,而下面使用a=a-b;a 的值不就又回到了原来了吗?
所以应该改为:
a=a+b;
b=a-b;
a=a-a;

哦!大伙说的对,我一时没想起来,我错了,在这里向个位赔不是。
不是采纳我的答案哦!

楼上的,a-a为0了啊,怎么可能等于b? 2楼的正确,b=a-b,此时的b是a初时的值了,而此时a等于a+b的值,a-b就等于原来b了啊

li_yinan是对的,请问天外琴音,a-a等于多少?