| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:  注册  忘记密码
 
密 码:  
共有 1142 人关注过本帖
标题:输出后,pa 与 pb 指向的值为什么没有交换?
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
要学会转弯、迁移才行。你总会交换两个数值吧?交换指针也不过是交换指针的值而已!

授人以渔,不授人以鱼。
2014-08-27 22:34
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:2 
mark一下,
2014-08-28 01:01
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
收藏
得分:2 
在swap里放个printf看看


莫问前尘有愧,但求今生无悔
2014-08-28 08:05
adreno205
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2014-8-28
收藏
得分:2 
swap 只是一个调用函数,swap函数调用结束后,q1 q2变量都死了,根本不会改变pa  pb的值
2014-08-28 08:50
deathride
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2014-8-28
收藏
得分:2 
你只交换了指针的地址,指针的目标变量内容不变
int *p;
    if(*p1<*p2)
    {
        p=p1;//>>>>>>>>>>>>>>>>p = *p1
        p1=p2>>>>>>>>>>>>>>>*p1 = *p2
        p2=p;>>>>>>>>>>>>>>>*p2 = p
2014-08-29 00:15
chenxuemin
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2014-8-9
收藏
得分:2 
不太明白是什么意思。
2014-08-29 10:35
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:2 
可能要用指向指针的指针
2014-08-29 21:09
cquwt
Rank: 1
等 级:新手上路
帖 子:41
专家分:2
注 册:2013-12-24
收藏
得分:2 
对于你的代码,我的解释是:a和*pa的地址是一样的,b和*bp的地址是一样的,所以不管是你还是4楼的swap代码,main函数中printf的输出值永远是一样的。
对于你的swap函数,是交换二者的地址,但这个地址是对应相应的值的,所以地址交换后,它指向的值并不变。
对于4楼的swap函数,是交换二者的值,所以地址指向的值变了,所以你输出的自然就变了。
2014-08-29 21:40
快速回复:输出后,pa 与 pb 指向的值为什么没有交换?
 
   



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

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