用C++定义2D数组

Pro*_*Pro 0 c++ arrays multidimensional-array

int train [4] [3] = {   0, 0, 0,
                                      0, 1, 0,
                                      1, 0, 0,
                                      1, 1, 1 };
Run Code Online (Sandbox Code Playgroud)

这是C++中2d数组的有效初始化

行将是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}};
Run Code Online (Sandbox Code Playgroud)

R S*_*ahu 7

int train [4] [3] = {   0, 0, 0,
                        0, 1, 0,
                        1, 0, 0,
                        1, 1, 1 };
Run Code Online (Sandbox Code Playgroud)

是C++中2D数组的有效初始化.

从C++ 11标准:

8.5.1聚合

10初始化多维数组时,initializer-clauses初始化元素,数组的最后(最右侧)索引变化最快(8.3.4).[ 例如:

int x[2][2] = { 3, 1, 4, 2 };
Run Code Online (Sandbox Code Playgroud)

初始化x[0][0]3,x[0][1]to 1,x[1][0]to 4x[1][1]to 2.另一方面,

float y[4][3] = {
  { 1 }, { 2 }, { 3 }, { 4 }
};
Run Code Online (Sandbox Code Playgroud)

初始化第一列y(被视为二维数组)并将其余部分保留为零.- 结束例子 ]