int train [4] [3] = { 0, 0, 0,
0, 1, 0,
1, 0, 0,
1, 1, 1 };
这是C ++中二维数组的有效初始化
行将是0,0,0(第1行),(0,1,0)(第2行),(1,0,0)(第3行)和(1,1,1)(第4行) )?
它等同于
int train [4] [3] = {{0, 0, 0},
{0, 1, 0},
{1, 0, 0},
{1, 1, 1}};
答案 0 :(得分:7)
int train [4] [3] = { 0, 0, 0,
0, 1, 0,
1, 0, 0,
1, 1, 1 };
是C ++中2D数组的有效初始化。
来自C ++ 11标准:
8.5.1聚合
10初始化多维数组时,initializer-clauses初始化元素,数组的最后(最右侧)索引变化最快(8.3.4)。 [示例:
int x[2][2] = { 3, 1, 4, 2 };
将
x[0][0]
初始化为3
,将x[0][1]
初始化为1
,将x[1][0]
初始化为4
,将x[1][1]
初始化为{{1} }}。另一方面,2
初始化float y[4][3] = {
{ 1 }, { 2 }, { 3 }, { 4 }
};
的第一列(被视为二维数组)并将其余部分保留为零。 - 结束示例]
答案 1 :(得分:2)
是的!它是c ++中有效的初始化。