我开始学习C编程。
a[20]
和a[]
我知道a[20]
是一个固定大小数组,但是a[]
呢?
答案 0 :(得分:3)
在不知道正确的上下文/用法的情况下,不可能提供直接的答案,但是,让我举一些常见情况的例子:
在块作用域中,使用诸如a[]
,
char a[] = "Some Name";
仍然是固定大小的数组。该大小是从初始化程序获得的,例如:上面的数组的大小为10(包括空终止符)。
另一方面,对于函数自变量,其语法为a[]
,
void func (int a[])
与
相同void func (int *a)
它不是数组,而是指针。
如果此语法显示为具有多个命名成员的结构的最后一个元素,则称为灵活数组成员。它是不完整的数组类型。例如:
struct s { int n; double d[]; };