黑马程序员技术交流社区

标题: 交换两个变量的值的问题 [打印本页]

作者: 大悟云    时间: 2014-10-26 18:15
标题: 交换两个变量的值的问题
交换a,b变量的值

int  a = 1;
int  b = 2;
1.利用中间变量
int c = a;
b = a;
a = b;
2.不利用中间变量
a = b-a;
b = b-a;
a = a+b;

作者: SEAs    时间: 2014-10-26 18:56
1 利用中间变量
正确写法
int c=a;
a=b;
b=c;
a,b变量的值不能直接交换,就相当于两瓶水不能直接交换瓶子里的谁,这时候就需要一个空的瓶子,即变量c,先把a赋值给c,然后a=b,把b的值赋给a,此时,c的值和a一样,再把c的值赋给b,即完成了变量值的交换。
2 不利用中间变量
该方法考察的是赋值问题。
执行第一条语句a=b-a,然后b=b-a即 b=b-(b-a)=a
执行a=a+b 即a=b-a+a=a。完成值的交换。应注意赋值过程中值的变化。
作者: 菜鸟_琦    时间: 2014-10-27 11:02
顶一个·~~
作者: 大悟云    时间: 2014-10-27 21:33
哦,对,写的时候没注意
作者: neokevin    时间: 2014-10-28 01:39
也可以用异或运算符实现哦!如果不使用多余的临时变量的话可以使用int a=1;int b=2;a=a^b;b=a^b;a=a^b;其中利用的原理呢就是一个数异或另一个数两次结果不变…
作者: wenchang1989    时间: 2014-10-28 10:33
昨天刚看的这个,感觉还不错,大脑真是个神奇的地方,什么点子都会出现!
作者: 易拉罐    时间: 2014-10-31 20:44
很精典的!!!

作者: chenhuan_ccit    时间: 2014-10-31 22:24
不过感觉在实际开发过程中不会用到这么多
作者: jinzhinan    时间: 2014-11-1 01:24
实际开发中只会用到更多
作者: 万雷    时间: 2014-11-1 08:44
这不是 视频中的嘛
作者: ch8898163    时间: 2014-11-1 11:15
楼主很认真啊,顶起




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2