一种不用创建临时变量的交换两数的方法

我们大家通常常用的方法就是创建一个临时变量,因为如果直接交换在计算机中是会覆盖掉源数据的,所以需要一个临时变量来储存之前的数据。在这里插入图片描述
假设a的值为10,b的值为5,交换过程就是先将变量a的值赋值给temp,再把变量b的值赋值给a,这样a原来的数据10虽然被覆盖,但是10也存在了temp变量中,再把变量temp的值赋值给b,就完成了对变量a、b值的交换。
在这里插入图片描述
但是无意间看到一种并不用创建临时变量就能交换的值的算法。
在这里插入图片描述
我们同样假设a的值为10,b的值为5。
第一步将a与b的和赋值给a,这时a的值为15,b的值为10。
第二步再将a-b的值赋值给b,此时b的值就为15-10=5,发现正好就是a的值。
第三步再将a-b的值赋给a,因为有了第二步的操作,所以此时b的值为5,a的值15-5=10,正好为b的值。
在这里插入图片描述
这样并不用创建临时变量,在极端的情况下可以省点内存。但这种情况只适用于数字,当我们在交换数组或是字符串等引用变量时,就不能使用这个算法了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值