微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

谢谢!

解决方法

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

逗号运算符用于 (10,9) 和类似的东西。此运算符首先评估左侧操作数,然后丢弃结果并评估右侧操作数。逗号运算符的求值结果就是右与操作数的求值结果。

因此,声明意味着

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

请注意,用于分隔元素的逗号不是逗号运算符。

,

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

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;
,

二维数组看起来像这样:

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

示例:

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

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

,

没有。它是一个一维数组。该语句简单地声明了一个包含 10 个整数的整数数组,但大括号内的括号确实是一个神话。

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

int array[][2]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。