首页 > 技术文章 > 不通过第三个变量来交换两个变量的值

guanguangreat 2016-11-30 18:32 原文

方法一:a = a + b - (b = a);     //这里可能存在运算顺序的问题,先求(b=a)先呢?还是先求a+b?这因编译器而已,不可移植,不建议使用这种方法(修改于2016-12-06)

方法二:b = a + (a = b) * 0;     //不建议使用这种方法,理由同上(修改于2016-12-06)

方法三:a = a + b;
    b = a - b;
    a = a - b;

 

方法四:a = a * b;
    b = a / b;
    a = a / b;

 

方法五:a = a ^ b;
    b = a ^ b;
    a = a ^ b;


推荐阅读