| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 585 人关注过本帖
标题:新手的困惑,请大侠指点!!!多谢!!!
只看楼主 加入收藏
Digitalman
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2005-11-2
收藏
 问题点数:0 回复次数:3 
新手的困惑,请大侠指点!!!多谢!!!
我想不交换a,b只交换他们的地址变量,输出结果和我预期的不一样

swap(int *p1,int *p2)
{int *temp;
temp=p1;p1=p2;p2=temp;
}
main()
{
int a,b;
int *pointer_1,*pointer_2;
scanf("%d,%d",&a,&b);
pointer_1=&a,pointer_2=&b;
if(a<b) swap(pointer_1,pointer_2);
printf("\na=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n\n",*pointer_1,*pointer_2);
}


如输入1,3
输出就是 a=1,b=3
max=1,min=3

不知道错在哪里?请指教!!!!
如下面的函数就可以实现,请问两个函数区别在哪里?
main()
{
int *p1,*p2,*p,a,b;
scanf("%d,%d",&a,&b);
p1=&a;p2=&b;
if(a<b)
{p=p1;p1=p2;p2=p;}
printf("\na=%d,b=%d\n",a,b);
printf("max=%d,min=%d\n\n",*p1,*p2);
}

如输入1,3
输出 a=1,b=3
max=3,min=1;

初学指针,请多多指教!!!
搜索更多相关主题的帖子: pointer 困惑 
2005-12-02 15:15
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-12-02 20:31
Digitalman
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2005-11-2
收藏
得分:0 
言下之意,就是如果希望用型参改变实参的话,就采取全局变量的做法么?
不过无论怎样也好,还是谢谢你!!!

C自学者,请多多指教!!!
2005-12-02 22:41
layabout
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2005-12-2
收藏
得分:0 
可以采用传地址啊,

学习不难!难的是一辈子兢兢业业,老老实实,勤勤恳恳的学习!!!
2005-12-02 22:45
快速回复:新手的困惑,请大侠指点!!!多谢!!!
数据加载中...
 
   



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

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