C语言中在函数中声明数组类型的形式参数

C语言中在函数中声明数组类型的形式参数为什么C语言中在函数中声明数组类型的形式参数时不需要指定形参的长度?如void fun(int a[]);而在平常语句中声明一个数组却不能int a[];这样来声明?

定义数组必须要确定它的长度,所以int [] ={1, 2, 3}类似的才能编译通过。 在函数的形参里使用int a[] 其实是一个道理,它会在调用时被赋予初值和长度。 申请的空间通过栈来保存,使用完了就会释放,下一次调用,又会被赋予不同的初值和长度。 手打,望采纳,有问题追问
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-07-19
申明可以 void fun(a[]); 只起申明作用。
调用时,就需要 fun(a,m); //m数组长度。
数组的空间必须指定大小 ,但是可以采用动态分配空间,比如molloc函数。追问

不需要呀。

追答

a={1,2,3,4};
就是a[4]//含有4个元素的一维数组。
fun(a); //a数组的地址,即是&a[0]
printf("%d",*(a+3));
就是a[4]=4

我们的问题,好像都错开了。

第2个回答  2016-07-19
你语文也没学好吧?
相似回答
大家正在搜