|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 有个指针的问题搞不懂,请指教
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
739
人关注过本帖
标题:
有个指针的问题搞不懂,请指教
只看楼主
加入收藏
bigzerg
等 级:
新手上路
帖 子:39
专家分:0
注 册:2008-5-19
楼主
收藏
问题点数:0 回复次数:8
有个指针的问题搞不懂,请指教
void swap(int *pa,int *pb)
{int *p;
p=pa;pa=pb;pb=p;
}
main()
{int a=2,b=4;
int *pa,*pb;
pa=&a;pb=&b;
if(a<b) swap(pa,pb);
printf("%d,%d\n",*pa,*pb);
}
为什么这个程序只能把pa,pb的地址改了,但不改变对应的值呢?
搜索更多相关主题的帖子:
指针
指教
2008-06-22 22:00
举报帖子
使用道具
赠送鲜花
bigzerg
等 级:
新手上路
帖 子:39
专家分:0
注 册:2008-5-19
第
2
楼
收藏
得分:0
我想问的就是为什么对主函数没影响的?就是为什么*pa和*pb的值没有交换?
2008-06-22 22:38
举报帖子
使用道具
赠送鲜花
wltysy
等 级:
新手上路
帖 子:560
专家分:0
注 册:2008-5-2
第
3
楼
收藏
得分:0
好像是指针只能改变他所指向的元素的值,本身的不会改变!
2008-06-22 22:43
举报帖子
使用道具
赠送鲜花
wangjianlin2008
来 自:四川
等 级:
新手上路
帖 子:207
专家分:0
注 册:2008-6-22
第
4
楼
收藏
得分:0
不会吧
我看不是通过指针传递的,修改了指针的地址,那么指针指向的内容也该跟着变啊!
2008-06-23 09:29
举报帖子
使用道具
赠送鲜花
mqh21364
等 级:
新手上路
帖 子:642
专家分:0
注 册:2008-2-28
第
5
楼
收藏
得分:0
指针做参数和基本类型做参数实际上是一样的。
本来如果*pa 指向 a, *pb 指向b,在指针做参数的时候,系统也是复制了pa, pb的值, 我们暂定他叫做pa1, pb1.
那么*pa1=a, *pb1=b. 然后你交换*pa1,*pb1,其实交换的就是a,b.
但是,你在这里交换的是pa1, pb1两个值,但是这两个值在函数运行结束后就消失了,你根本没有交换到实际的a,b。
不知道说的清楚不清楚,错了请大家指教
前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。
2008-06-23 09:52
举报帖子
使用道具
赠送鲜花
gongjiandenghua
该用户已被删除
第
6
楼
收藏
得分:0
提示:
作者被禁止或删除 内容自动屏蔽
2008-06-23 12:53
举报帖子
使用道具
赠送鲜花
coming
等 级:
新手上路
帖 子:244
专家分:0
注 册:2008-4-20
第
7
楼
收藏
得分:0
你交换的指针,指针是指向变量的,交换了仅仅是改变了指针,也就是改变了指针的指向,而并没有改变指向的值,因为在你的函数里没有改变,所以对主函数里定义的也不会改变 也就是没有影响
2008-06-23 13:49
举报帖子
使用道具
赠送鲜花
hajiwon
等 级:
新手上路
帖 子:5
专家分:0
注 册:2007-11-15
第
8
楼
收藏
得分:0
不能通过改变指针形参的值而使指针实参的值改变
2008-06-23 14:14
举报帖子
使用道具
赠送鲜花
9
1/1页
1
快速回复:
有个指针的问题搞不懂,请指教
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.026204 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved