| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 989 人关注过本帖
标题:这怎么算呢
只看楼主 加入收藏
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
[bo][un]StarWing83[/un] 在 2008-10-13 20:15 的发言:[/bo]

缺点一:只适合整型。
缺点二:相对于通常的交换代码,速度慢
缺点三:这样写会阻止编译器对通常的交换的优化(X86CPU里面有个交换指令)

所以,大家知道就好了吧,实用的时候就不要这么写了。

这三个缺点不算什么的,最大的毛病在指针。
如果a,b是两个指针指向的数据,必需判断指针是否相同,否则结果错。用其他的交换算法,交换同一个数就是数值不改变。
int a=3,b=4;
int *p1, *p2;
p1=&a,p2=&a;
*p1=(*p1)^(*p2);
*p2=(*p1)^(*p2);
*p1=(*p1)^(*p2);
printf("%d %d\n",a,b);
2008-10-14 08:10
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
所以呢,这个东西知道就好了,不要怎么多想就可以了。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-14 14:57
快速回复:这怎么算呢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.089871 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved