首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C/C++:这是一个二维数组吗?为什么数组中的括号在语法上是正确的?

C/C++:这是一个二维数组吗?为什么数组中的括号在语法上是正确的?
EN

Stack Overflow用户
提问于 2021-03-18 21:32:33
回答 4查看 85关注 0票数 1

我刚刚开始学习C++,看到了下面的代码示例。代码声明了一个带有paratheses的整数数组,并且可以编译而不会出现语法错误。这是二维数组解码吗?

代码语言:javascript
复制
int array[] = {(10, 9), (8, 7), (6, 5), (4, 3), (2, 1),(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)};

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2021-03-18 21:38:33

不,这不是二维数组,而是一维数组。

逗号运算符在(10, 9)和类似的东西中使用。这个运算符首先计算左操作数,然后丢弃结果并计算右操作数。逗号运算符的求值结果是右数操作数的求值结果。

因此,声明意味着

代码语言:javascript
复制
int array[] = {9, 7, 5, 3, 1,2, 4, 6, 8, 10};

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

票数 3
EN

Stack Overflow用户

发布于 2021-03-18 21:42:52

如果你想拥有一个二维数组,你可以这样写:

代码语言:javascript
复制
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;
票数 -1
EN

Stack Overflow用户

发布于 2021-03-18 21:38:16

2d数组看起来像这样:

代码语言:javascript
复制
type name[size1][size2] = {e1,e1,...}

示例:

代码语言:javascript
复制
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 */
};

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

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66692156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档