| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 991 人关注过本帖
标题:关于指针的调用问题
取消只看楼主 加入收藏
ldliming
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-8-12
收藏
 问题点数:0 回复次数:2 
关于指针的调用问题
下面两个函数的功能是都是想实现两个数值的交换,但是为什么第一个不能实现,而第二个能实现呢?还望高手们指教!!! 拜托!谢谢!!!!!!!!!!!!
(1)
main()
{
void rub(int *p1,int *p2);
int x,y;
int *p1,*p2;
x=1,y=2;
p1=&x,p2=&y;
rub(p1,p2);
printf("%d,%d\n",*p1,*p2);
}
void rub(int *p1,int *p2)
{
int *p;
p=p1; //交换地址即交换指针的指向,为什么不能实现两个数值的交换呢?
p1=p2;
p2=p;
printf("%d,%d\n",*p1,*p2);
}
(2)
main()
{
void rub(int *p1,int *p2);
int x,y;
int *p1,*p2;
x=1,y=2;
p1=&x,p2=&y;
rub(p1,p2);
printf("%d,%d\n",*p1,*p2);
}
void rub(int *p1,int *p2)
{
int p;
p=*p1; //交换指针所指数据的内容则可以实现数值交换,又是为什么呢?
*p1=*p2;
*p2=p;
printf("%d,%d\n",*p1,*p2);
}
搜索更多相关主题的帖子: 指针 
2006-08-13 22:16
ldliming
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-8-12
收藏
得分:0 
第一个函数的再调用rub()之前p1指向x的地址,p2指向y的地址,调用后p1指向y的地址p2指向x的地址,再输出的时候应该能够调换数值阿。可是为什么不能呢?
2006-08-13 22:31
ldliming
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-8-12
收藏
得分:0 

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

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



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

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