`
moxiaomomo
  • 浏览: 44171 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

如何在不使用第三个变量的前提下,交换两个变量的值

 
阅读更多
int a=10,b=20;

第一种方法:

a=a+b;
b=a-b;
a=a-b;             
(前提是支持 + - = 的操作)


第二种方法:

a^=b;
b^=a;
a^=b;
(原理还是一样,不过用到了二进制中的异或操作)

////////////////////////////
第三种方法:(未经验证)
a=a+b-(b=a);

(此方法貌似有误,很抱歉在这里误人子弟了。估计是先后赋值的问题,不过还没具体确定...)
/////////////////////////////////////////////


2
1
分享到:
评论
2 楼 刀枪剑戟 2011-04-18  
1 楼 yeshaoting 2011-04-18  
写得好.

相关推荐

Global site tag (gtag.js) - Google Analytics