在线
客服

发布
需求

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

求当形参是一个数组时怎么办?

如果定义一个函数int xu(int a[100])

在应用时,是不是要标明这个数组的实际有效长度
例如     a[100]={1,2,3}
在形参里是不是为int  xu(int   a[3][100])
求大佬解答

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

并不!
函数形参声明为数组的,都会被当作是“数组元素指针”类型
所以int xu(int a[100]) 其实就是 int xu(int *a)
也就是说:形参数组的大小完全没有作用[注1]
写int xu(int a[]) 和int xu(int a[100]) 都是一样的结果。


在调用传参时,如果传入的实参是数组,也会隐式转型为数组元素指针类型。所以最终传入的也是指针,和形参类型一致。并且同样,这和实参数组的大小完全没有关系。


至于你最后给出的这个写法int xu(int  a[3][100]) 就过分脑补了哦......


注1:在C99标准中允许在形参声明为数组时,在中括号中写入一些内容,用以对传入的数组大小或形参指针进行一些限制。但不是你脑补的那种写法,而且这个新语法用得并不多,初学时不用考虑这个。

使用道具 举报

发新帖
国内首家创新型IT技术需求众包服务平台,软件需求就上天盟网! 立即登录 立即注册