码迷,mamicode.com
首页 > 其他好文 > 详细

交换两个数

时间:2016-09-11 17:21:17      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

对于给定两个数a和b,传统的方法可以通过一个临时变量t完成交换:

t=a;
a=b;
b=t;

如果不使用中间变量t,可以这样写:

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

也可以使用亦或的方法:

x=x^y;
y=x^y;
x=x^y;

再精简一些就成了:

x^=y^=x;

如果a,b是指针类型,那么可以如下操作:

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

 经过以上操作,a指针指向了b指针原先指向的元素,b指针指向了a指针原先指向的元素。

交换两个数

标签:

原文地址:http://www.cnblogs.com/belfuture/p/5862075.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!