交换两个变量的值,一般的解决方法就是用一个临时变量保存转换过程中的值因为如果直接进行交换的话:a=b;则a原来的值会被冲掉。
比如:
int a,b;
int temp;
temp=a;
a=b;
b=temp;
只要在交换的过程中是a、b的值不被冲掉就可以达到交换的目的,实现的方法有下面两种(还有一种c指针方法就不介绍了)
(1)int a=10,b=12;
a=b-a;
b=b-a;
a=b+a;这样就完成了a、b的交换,并且没有借助第三个变量,因为惯性思维,这种方法会很难被想到
(2)位运算来实现
int a,b;
a=a^b;
b=b^a;
a=a^b;
先写这麽多吧,以后有新的方法再补充
原文:http://www.cnblogs.com/ysw-go/p/4868149.html