您的位置:首页 > 其它

交换a、b不用第三个参数

2014-02-18 22:49 183 查看
方法一 加减运算:

{
int a = 3;
int b = 23;
cout<< "a="<<a<<endl;
cout<< "b="<<b<<endl;

a = a+b;
b = a-b;
a = a-b;

cout<< "a="<<a<<endl;
cout<< "b="<<b<<endl;
}


方法二: 异或

异或运算符^也称XOR运算符,它的规则是若参加运算的两个二进位同号,则结果为0(假);异号为1(真)。即0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0。

{
int a = 2, b = 6;

a = a ^ b;
b = b ^ a;
a = a ^ b;

printf("a = %d b = %d/n", a, b);

}


总结 :其原则是,通过一个可逆运算,将 a和b运算的结果赋值给其中一个,而另一个还是原值,再通过可逆运算,反推。

参考:http://blog.csdn.net/lpt19832003/article/details/5334688
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: