为什么我必须初始化一个数组?

时间:2017-02-05 11:07:44

标签: c++ c arrays initialization

那么我为什么要做这个"人[城市] [年] = 1000 ;"事?

int People[2059][100];
for (int city = 0; city < 2059; city++)
for (int years = 0; years < 100; years++)
People[city][years] = 1000;

2 个答案:

答案 0 :(得分:1)

你不必。但是People数组将包含不确定的值,并且读取它们会产生具有未定义行为的程序(我假设它是具有自动存储持续时间的变量)。这不是一个过于有用的程序。

如果数组具有静态存储持续时间,则它将被零初始化。如果你对此没问题,你就不必循环并立即分配值。

答案 1 :(得分:1)

这一行:

People[city][years] = 1000;

将2D数组中的值初始化为堆栈上的1000。如果你没有初始化数组中的数字,它们可以是任何东西。

相反,您可以将People中的数字初始化为0

int People[2059][100] = {{0}}; /* or 1000, if you prefer that */

使用它可以节省您必须遍历数组并将每个值分配给0。如果您决定插入其他数字,则不需要初始化数组。