| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 207 人关注过本帖
标题:[求助]函数调用中实参代替形参的问题
收藏  订阅  推荐  打印 
asxiaofuchao
Rank: 1
等级:新手上路
帖子:9
积分:190
注册:2007-7-23
[求助]函数调用中实参代替形参的问题

  老师讲课的时候硕果函数调用的实质是实参代替形参的过程,但我就不明白实参是怎样代替形参的.麻烦高人们帮我解答下.
  下面有个选择题,我不知道怎么做.
    

  以下程序中函数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-7-24 16:23
anlogo
Rank: 3Rank: 3
等级:中级会员
威望:1
帖子:237
积分:2470
注册:2007-7-20

程序本身有问题,改了一下
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[]数组是同一个数组

学习VC++中!
2007-7-24 17:43
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.049891 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved