在C++中定义 2D 数组

Defining 2D arrays in C++

本文关键字:2D 数组 定义 C++      更新时间:2023-10-16
int train [4] [3] = {   0, 0, 0,
                                      0, 1, 0,
                                      1, 0, 0,
                                      1, 1, 1 };

这是 2D 数组的有效初始化吗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}};
int train [4] [3] = {   0, 0, 0,
                        0, 1, 0,
                        1, 0, 0,
                        1, 1, 1 };

是 2D 数组的有效初始化(C++(。

从 C++11 标准:

8.5.1 聚合

10 初始化多维数组时,初始值设定项子句初始化元素时,数组的最后一个(最右边(索引变化最快 (8.3.4(。[ 示例:

int x[2][2] = { 3, 1, 4, 2 };

x[0][0]初始化为3x[0][1]初始化为1x[1][0]初始化为4x[1][1]初始化为2。另一方面

float y[4][3] = {
  { 1 }, { 2 }, { 3 }, { 4 }
};

初始化y的第一列(被视为二维数组(,其余部分为零。

是的!它是 c++ 中的有效初始化。