C/C++:这是一个2D数组吗?为什么数组中的括号语法正确



我刚刚开始学习C++,并看到了以下代码示例。该代码声明了一个带括号的整数数组,并且可以在没有语法错误的情况下进行编译。这是2D数组解密吗?

int array[] = {(10, 9), (8, 7), (6, 5), (4, 3), (2, 1),(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)};

谢谢!

不,这不是2D数组,而是1D数组。

逗号运算符用于(10, 9)和类似的内容。此运算符首先计算左侧操作数,然后放弃结果并计算右侧操作数。逗号运算符的求值结果是右和操作数的求值结果。

因此,声明意味着

int array[] = {9, 7, 5, 3, 1,2, 4, 6, 8, 10};

请注意,在元素之间分隔的逗号不是逗号运算符。

如果你想要一个2D数组,你可以写如下:

int array[][2] = {{10, 9}, {8, 7}, {6, 5}, {4, 3}, {2, 1},{1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}};
cout << "Size: " << sizeof(array) << endl;
for (int i=0; i<sizeof(array)/sizeof(array[0]); i++)
cout << array[i][0] << ',' << array[i][1] << endl;

2d数组看起来像这样:

type name[size1][size2] = {e1,e1,...}

示例:

int a[3][4] = {  
{0, 1, 2, 3} ,   /*  initializers for row indexed by 0 */
{4, 5, 6, 7} ,   /*  initializers for row indexed by 1 */
{8, 9, 10, 11}   /*  initializers for row indexed by 2 */
};

你的只是一个简单的数组。。互联网上有很多例子,只有谷歌。

否。它是一个一维数组。该语句只是简单地声明一个包含10个整数的整数数组,但大括号内的括号实际上是一个神话。

如果你想要一个二维数组,它可以声明为

int array[][2]

相关内容

  • 没有找到相关文章

最新更新