现在的位置: 首页 > 综合 > 正文

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

2018年01月29日 ⁄ 综合 ⁄ 共 384字 ⁄ 字号 评论关闭

     方法一    加减运算:

{
        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

抱歉!评论已关闭.