【发布时间】:2014-11-06 18:33:24
【问题描述】:
我有一个全局数组。该数组的内存将从数据段中分配。 我很困惑我应该怎么称呼这个数组。是数组声明还是数组定义? 我认为既然分配了内存,这应该是数组定义。
int array[4][5][2]; // declaration or definition? 4*(4+5+2) bytes will be allocated
int main()
{
return 0;
}
【问题讨论】:
标签: c
我有一个全局数组。该数组的内存将从数据段中分配。 我很困惑我应该怎么称呼这个数组。是数组声明还是数组定义? 我认为既然分配了内存,这应该是数组定义。
int array[4][5][2]; // declaration or definition? 4*(4+5+2) bytes will be allocated
int main()
{
return 0;
}
【问题讨论】:
标签: c
根据 C 标准(6.7 声明)
5 声明指定集合的解释和属性 的标识符。一个标识符的定义是一个声明 那个标识符:
——对于一个对象,导致为该对象保留存储空间;
正如您自己指出的,数组的内存保留在数据部分中,然后您有一个数组声明,同时也是一个定义。
【讨论】:
在这种情况下,两者都是:声明 + 定义。
如果您在单独的文件中有类似的内容:
extern int array[4][5][2];
那只是声明它,因为定义发生在其他“外部”文件中。
【讨论】: