我刚刚开始学习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]