数组定义与数组声明

时间:2014-11-06 18:33:25

标签: c

我有一个全局数组。该数组的内存将从数据段中分配。 我很困惑我该怎么称呼这个数组。是数组声明还是数组定义? 我认为既然分配了内存,这应该是数组定义。

int array[4][5][2]; //  declaration or definition? 4*(4+5+2) bytes will be allocated
int main()
{
    return 0;
}

2 个答案:

答案 0 :(得分:1)

根据C标准(6.7声明)

  

5声明指定集合的​​解释和属性   标识符。标识符的定义是声明   该标识符:

     

- 对于一个对象,导致为该对象保留存储;

正如您所注意到的那样,数组的内存保留在数据部分中,那么您将获得一个同时是定义的数组声明。

答案 1 :(得分:0)

在这种情况下,它既包括:声明+定义。

如果你有一个单独的文件:

extern int array[4][5][2];

然后那只是宣告它,因为定义发生在其他"外部"文件。