博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

不使用第三方参数来交换2个数

Posted on 2011-08-21 21:19  ChessYoung  阅读(204)  评论(0编辑  收藏  举报

整数:

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

其他情况

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

可能会发生溢出

a = a + b - (b=a);

依赖于编译器,gcc和vc6下均可以达到目的,而vs2010下则不能,所以不稳定。

真正用的时候,还是使用第三方参数为好,安全,效率也不低。