| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 991 人关注过本帖
标题:关于指针的调用问题
只看楼主 加入收藏
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
第一个程序输出 结果是
2 1
1 2
我用VC++运行的

中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-14 11:23
jiahu0215178
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-8-12
收藏
得分:0 
TO:soft_wind
你说"""虽然您在函数形参仍是传址,但在函数具体实现时,却是对地址进行交换,而这个地址的空间在形参时是重新分配的,并不是真正变量x,y的地址"""
那么针对第二种情况:
请问:1.你说的"""这个地址空间的形参"""是重新分配的吗?
2.形参对应的是"""真正变量x,y的地址"""吗?为什么呢?
3.过地址的交换不就可以对数据交换了吗?
2006-08-14 12:22
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 
main()
{
void rub(int *p1,int *p2);
int x,y;
int *p1,*p2;
x=1,y=2;
p1=&x,p2=&y;//这里P1,P2是有地址,没赋值的
rub(p1,p2);//函数调用结束后P1,P2的地址没有被改变
printf("%d,%d\n",*p1,*p2);//输出的是原来P1,P2所指的内容:1,2.
}
void rub(int *p1,int *p2)
{
int *p;
p=p1; //交换地址即交换指针的指向,为什么不能实现两个数值的交换呢?
p1=p2;
p2=p;
printf("%d,%d\n",*p1,*p2);//在函数内交换了地址,其实确切说是交换了指针参数的副本.输出相应的值,2,1.
}
2006-08-14 13:41
触电
Rank: 1
等 级:新手上路
威 望:1
帖 子:228
专家分:0
注 册:2006-7-26
收藏
得分:0 
你就这样想吧,你把指针传递给指针,那么
也就是说每个整形有2个指针指向它把
你在rub函数中局部变量的指针类型做了交换
但是你在MAIN函数还是使用了原来的指针
怎么实现内容的交换呢?
2006-08-14 17:46
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用jiahu0215178在2006-8-14 12:22:53的发言:
TO:soft_wind
你说"""虽然您在函数形参仍是传址,但在函数具体实现时,却是对地址进行交换,而这个地址的空间在形参时是重新分配的,并不是真正变量x,y的地址"""
那么针对第二种情况:
请问:1.你说的"""这个地址空间的形参"""是重新分配的吗? //我认为是.
2.形参对应的是"""真正变量x,y的地址"""吗?为什么呢?//是变量x,y的地址没错,因为传的是指向x,y的指针,自然是x,y的地址
3.过地址的交换不就可以对数据交换了吗?//形参的空间和主函数变量的空间是不一样的,在形参在形参中重新分配空间,打个比方,我有一张10块钱,你也有1张,同样都是10元的人民币(面值表示变量x,y,在谁的手里才是指针),但我这张在我手里,你那张在你手里,你用你的10元去买东西了,你的就没了,但并不代表我也没了。

对不礼貌的女生收钱......
2006-08-14 19:30
ldliming
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-8-12
收藏
得分:0 

谢谢各位大侠的鼎力相助,一个问题居然能得到那么多的高手的关注,我真的非常感动!看完大家的解释我心里豁然开朗,版主技高一筹。我感觉版主的解释比较合理。同时呢其他的解释也合理,其实意思相差甚微。再次感谢大家!!!!!!!

2006-08-14 20:39
快速回复:关于指针的调用问题
数据加载中...
 
   



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

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