| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 854 人关注过本帖
标题:求助:我是初学者对这个程序很模糊(关于实参形参和函数调用的)
只看楼主 加入收藏
姚杰
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:169
专家分:477
注 册:2010-6-1
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
求助:我是初学者对这个程序很模糊(关于实参形参和函数调用的)
#include<stdio.h>
void main()
{void swap(int *p1,int *p2);
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("\n%d,%d\n",a,b);
}
void swap(int *pq,int *p2);
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
1: 请问,p1=pointer_1,p2=pointer_2 对吗?它们是什么关系??(我对实参形参和函数调用很模糊)
2:第八行的 swap(pointer_1,pointer_2);是实参??
3:void swap(int *pq,int *p2);
  {int temp;
  temp=*p1;
  *p1=*p2;
  *p2=temp;
  }
 是返回第八行的 swap(pointer_1,pointer_2)吗???
搜索更多相关主题的帖子: 形参 函数 模糊 
2010-06-03 22:32
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:5 
第一问:对,他是把a和b的地址传给了指针变量*pointer_1,*pointer_2;
第二问:swap(pointer_1,pointer_2);这里面的pointer_1,pointer_2是实参;
第三问:这个函数没有返回值,只是把俩指针变量的值(即a和b的地址)交换了一下!

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-06-03 22:43
姚杰
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:169
专家分:477
注 册:2010-6-1
收藏
得分:0 
回复 2楼 myhnuhai
也许是我没说清,问题1:p1,p2是不是pointer_1,pointer_2的简写。
     

持之以恒,别留遗憾,加油
2010-06-03 22:50
炫舞小子
该用户已被删除
收藏
得分:3 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-04 00:06
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:2 
怎么能简写,是什么就是什么?
2010-06-04 17:02
a8979595
Rank: 2
等 级:论坛游民
帖 子:34
专家分:54
注 册:2010-5-31
收藏
得分:3 
#include<stdio.h>
void main()
{void swap(int *pointer_1,int *pointer_2);//这样定义一个函数不就明白什么意思了吗
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);//这一行对吗,指针的首地址能比较吗,swap(a,b);不是更好吗
printf("\n%d,%d\n",a,b);
}
void swap(int *pointer_1,int *pointer_2);
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
2010-06-04 18:04
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
收藏
得分:7 
不是,p1,p2是形参,pointer_1,pointer_2是实参
  调用函数时候,是将实参的值传递给形参
  也就是将p1,p2的值传递给pointer_1,pointer_2
2010-06-04 22:45
姚杰
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:169
专家分:477
注 册:2010-6-1
收藏
得分:0 
回复 7楼 aiyinsitan
那为什么在编程时不直接把p1换成pointer_1呢?

持之以恒,别留遗憾,加油
2010-06-05 06:29
蓝梅
Rank: 2
等 级:论坛游民
帖 子:23
专家分:19
注 册:2010-9-6
收藏
得分:0 
子函数没有返回值,子函数功能是交换p1,p2所指向的内存的内容。因为pointer_1,pointer和p1,p2都是指针变量,实参pointer_1,pointer_2 传给形参p1,p2,因此p1,p2所指向的内存单元和pointer_1,pointer所指向的内存单元相同。
2010-11-28 15:08
快速回复:求助:我是初学者对这个程序很模糊(关于实参形参和函数调用的)
数据加载中...
 
   



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

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