不用临时变量怎么交换两个变量的值?

作者:iamlaosong

编程中有时会碰到要交换两个变量的值,就是将变量x的值给变量y,变量y的值给变量x,最常见的办法就是设一个临时变量t担任桥梁,即:

t=x;        x=y;        y=t;

对于数值型变量,还有一个更巧妙的办法,不用增加临时变量,方法如下:

x=x+y;        y=x-y;        x=x-y;

上面语句顺序不能变,这样看似乎不直观(看不到变量值的变化情况),我们用下面的方式表示(变量值发生变化时,用新的符号表示,以示区别),并加上注释,就一目了然了(结合上面3个表达式看):

x"=x+y;        这儿的x"仍然是变量x,只是因为其值变了,用这种方式表示新值,以示区别;

y'=x"-y=x+y-y=x;         同样y'仍然是变量y,通过这次运算后,其值变成了变量x原来的值;

x'=x"-y'=x+y-x=y;        同样x'仍然是变量x,通过这次运算,其值变成了变量y原来的值;

如此,便不用临时变量完成了值的交换,是不是很有意思?

参见:

高频面试题-如何交换两个变量值?办法没你想得那么多!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值