c语言定义数组时可以不写下标也不初始化赋值么?(如:int a[];)

2025-03-03 06:02:00
推荐回答(5个)
回答1:

不可以。

但作为一个函数参数时,则可以:
void foo(int bar[])
{}

此时的bar,编译器并不会把它当成数组,而会把它当成指针。

回答2:

不行!用C#用多了吧?
能做到不声明长度的数组都是一些有运行时环境的语言。里面的数组在C层面上是一个对象,其自身不仅保存数据,还保存了自己的长度。
所以C是不能不给下标来初始化数组的。

回答3:

C语言定义数组时必须有数组类型,名以及数组的容量。 可以不赋初值,系统默认为0。

回答4:

不能这样定义,你后面那个问题也就没有意义了

回答5:

还是直接把数组长度写上去吧,如果不确定长度就尽量写得长一点