解释为什么这两个多维数组似乎是有效的语法,但只有一个给出预期
发布时间: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] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |