C 那是固定大小的数组吗?a[]
我开始学习C编程C 那是固定大小的数组吗?a[],c,arrays,fixed-size-types,C,Arrays,Fixed Size Types,我开始学习C编程 a[20]和a[] 我知道a[20]是一个固定大小的数组,但是a[]怎么样?如果不知道正确的上下文/用法,就不可能提供直接的答案,但是,让我举一些常用情况的例子: 在块作用域中,使用类似于a[]的语法定义的数组 char a[] = "Some Name"; 仍然是一个固定大小的数组。大小是从初始值设定项获得的,例如:上面的数组大小为10(包括空终止符) 另一方面,在函数参数的情况下,类似于a[]的语法 void func (int a[]) 与 void func (in
a[20]
和a[]
我知道
a[20]
是一个固定大小的数组,但是a[]
怎么样?如果不知道正确的上下文/用法,就不可能提供直接的答案,但是,让我举一些常用情况的例子:
a[]
的语法定义的数组
char a[] = "Some Name";
仍然是一个固定大小的数组。大小是从初始值设定项获得的,例如:上面的数组大小为10(包括空终止符)a[]
的语法
void func (int a[])
与
void func (int *a)
它不是数组,而是指针struct s { int n; double d[]; };
什么是上下文/用法?如果是参数,则是指向第一个元素的指针。如果它是一个定义和初始化(例如,
inta[]={1,2,3};
),它只会告诉编译器计算元素的数量,并使数组正好达到该大小。如果它是结构的最后一个成员
,则它是一个灵活的数组成员,在结构的其余部分之后分配灵活的大小。还有许多其他情况,如不完整的数组类型、灵活的数组成员等。如你所要求的,这个问题在没有上下文的情况下是无法回答的。@Lundin你说得很对,先生,我试图涵盖常用的案例,但让我扩展以添加更多。同时,我希望OP能像我要求的那样回到背景上来。