猿问

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

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

在应用时,是不是要标明这个数组的实际有效长度

例如     a[100]={1,2,3}

在形参里是不是为int  xu(int   a[3][100])

求大佬解答

qq_新生_10
浏览 1316回答 1
1回答

onemoo

并不!函数形参声明为数组的,都会被当作是“数组元素指针”类型所以 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标准中允许在形参声明为数组时,在中括号中写入一些内容,用以对传入的数组大小或形参指针进行一些限制。但不是你脑补的那种写法,而且这个新语法用得并不多,初学时不用考虑这个。
随时随地看视频慕课网APP
我要回答