| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 614 人关注过本帖
标题:[求助]函数调用中实参代替形参的问题
只看楼主 加入收藏
asxiaofuchao
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-7-23
收藏
 问题点数:0 回复次数:1 
[求助]函数调用中实参代替形参的问题
  老师讲课的时候硕果函数调用的实质是实参代替形参的过程,但我就不明白实参是怎样代替形参的.麻烦高人们帮我解答下.
  下面有个选择题,我不知道怎么做.
    

  以下程序中函数sort的功能是对所指数组中的数据进行由大到小的排序:
   void sort (int a[],int n)
{ int i,j,t;
for (i=0;j<n;j++)
for (j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t}
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for (i=0;i<10;i++) printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10,
B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7,6,5,4,9,10,
D)1,2,10,9,8,7,6,5,4,3,
搜索更多相关主题的帖子: 形参 函数 代替 
2007-07-24 16:23
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
收藏
得分:0 
程序本身有问题,改了一下
void sort (int a[],int n)
{ int i,j,t;
for (i=0;i<n;i++)
for (j=i+1;j<n;j++)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for (i=0;i<10;i++) printf("%d,",aa[i]);
printf("\n");
}
输出1 2 3 8 7 6 5 4 9 10

aa 代表该数组的地址,即&aa[0]
&aa[3]即aa[3]的地址
函数sort(int a[],int n)
实际上就是sort(int *a,int n)
第一个参数需要传递地址,而第二个参数则需要传递数值
这里a[]数组跟aa[]数组是同一个数组
2007-07-24 17:43
快速回复:[求助]函数调用中实参代替形参的问题
数据加载中...
 
   



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

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