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

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

这样写数组元素的大小系统会根据随后的赋值自动识别么?

不可以。

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

此时的bar,编译器并不会把它当成数组,而会把它当成指针。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-15
不行!用C#用多了吧?
能做到不声明长度的数组都是一些有运行时环境的语言。里面的数组在C层面上是一个对象,其自身不仅保存数据,还保存了自己的长度。
所以C是不能不给下标来初始化数组的。本回答被网友采纳
第2个回答  2013-02-14
C语言定义数组时必须有数组类型,名以及数组的容量。 可以不赋初值,系统默认为0。
第3个回答  2013-02-14
不能这样定义,你后面那个问题也就没有意义了
第4个回答  2013-02-15
还是直接把数组长度写上去吧,如果不确定长度就尽量写得长一点
相似回答