加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

解释为什么这两个多维数组似乎是有效的语法,但只有一个给出预期

发布时间:2020-12-16 09:32:14 所属栏目:百科 来源:网络整理
导读:我刚刚在一些填充c 2维数组的代码中意识到了我的方式错误. 我声明了这个数组: int myArray[5][5]; ..但错误地设置了一个值: *myArray[3,4] = 10; ..当它应该是: myArray[3][4] = 10; 好吧,第一行是一个错误,但它编译并运行,虽然结果非常奇怪. (也就是说,
我刚刚在一些填充c 2维数组的代码中意识到了我的方式错误.

我声明了这个数组:

int myArray[5][5];

..但错误地设置了一个值:

*myArray[3,4] = 10;

..当它应该是:

myArray[3][4] = 10;

好吧,第一行是一个错误,但它编译并运行,虽然结果非常奇怪. (也就是说,当我试图打印出* myArray [3,4]的内容时,它的值有错误)

有人可以解释一下第一个赋值语句到底在做什么吗?

编辑:我原本试图使用:

myArray[3,4] = 10;

..对于我试图将int分配给* int类型时,我抛出了一个编译器错误.我猜它根据下面的答案评估3,4到4并且认为我试图将4添加到指针,所以应该使用指针寻址来访问数组.

解决方法

逗号具有第二个表达的价值:(a,b)是b: http://en.wikipedia.org/wiki/Comma_operator

* myArray [3,4]就像* myArray [4]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读