那是固定大小的数组吗?一种[]

时间:2019-12-09 14:22:48

标签: c arrays fixed-size-types

我开始学习C编程。

a[20]a[]

我知道a[20]是一个固定大小数组,但是a[]呢?

1 个答案:

答案 0 :(得分:3)

在不知道正确的上下文/用法的情况下,不可能提供直接的答案,但是,让我举一些常见情况的例子:

  1. 在块作用域中,使用诸如a[]

    的语法定义的数组
    char a[] = "Some Name";
    

    仍然是固定大小的数组。该大小是从初始化程序获得的,例如:上面的数组的大小为10(包括空终止符)。

  2. 另一方面,对于函数自变量,其语法为a[]

    void func (int a[])
    

    相同
    void func (int *a)
    

    它不是数组,而是指针。

  3. 如果此语法显示为具有多个命名成员的结构的最后一个元素,则称为灵活数组成员。它是不完整的数组类型。例如:

    struct s { int n; double d[]; };