标题:函数传参问题
只看楼主
小代帅帅
Rank: 1
来 自:北京昌平
等 级:新手上路
帖 子:92
专家分:7
注 册:2013-5-11
结帖率:89.66%
已结贴  问题点数:10 回复次数:4 
函数传参问题
各路大神们,今天看计算机二级考试的题其中一个不太明白,请路过大神帮忙啊,先谢谢啦!!!
题:若主函数中有如下定义和函数调用语句
main()
{
   int t[10];
   .....
   fun(t,10);
   .....
}
则以下是对函数fun首部的书写
void fun(int[],int n)解释说t[]是可变长度的数组定义,这怎么理解呢?
void fun(int[10],int n)   main()函数中调用的fun()实参t不是代表数组的首地址吗不是得对应地址类型的形参吗,void fun(int *t,int n)这样才对啊,为什么void fun(int[10],int n)这样也行?


请求路过大神帮忙细致解释一下呗。。。
搜索更多相关主题的帖子: 计算机二级 
2013-11-25 16:34
zerolu
Rank: 1
等 级:新手上路
帖 子:20
专家分:9
注 册:2013-10-31
得分:0 
void fun(int[10],int n)
这样也行啊,我没用过这样的据我猜测,那就是直接把实参的首地址放在了[10]前面了吧
2013-11-25 16:53
randychang
Rank: 2
来 自:江西
等 级:论坛游民
帖 子:7
专家分:15
注 册:2013-11-25
得分:0 
int[]定义一个数组,但是没有给定长度参数,故可以通过分配函数 malloc动态的分配数组的长度,可以用多少,分配多少。至于第二个,你觉得按你说的那样定义还是定义一个数组吗。

衣带渐宽终不悔,为伊消得人憔悴!
2013-11-25 17:08
ljx小子
Rank: 8Rank: 8
来 自:星星
等 级:蝙蝠侠
威 望:2
帖 子:222
专家分:916
注 册:2013-10-7
得分:0 
int[10]这是什么,貌似没见过这种传递,函数只有两种两种传递方式一种值传递一种地址传递

。。。。。。。。。。。
2013-11-25 17:55
randychang
Rank: 2
来 自:江西
等 级:论坛游民
帖 子:7
专家分:15
注 册:2013-11-25
得分:10 
这也是一种地址传递,并且分配了数组的大小

衣带渐宽终不悔,为伊消得人憔悴!
2013-11-26 10:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-424178-1-1.html




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

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