下面的代码看起来是正确的,但它会打印不正确的数字,每次都是随机的!我真的从C++站点复制了它,并对其进行了交叉检查,以确认代码是正确的!但它仍然不起作用!
#include <iostream>
int main()
{
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 */
};
std::cout << a[3][4];
}
在c++中初始化数组时,传递到每个括号中的数字就是数组的大小,但这是上限,实际上不是索引,而是极限。如果索引从0开始,并且arrray中有3个项目,那么最后一行将是2。这就是为什么数组上的c++循环总是的原因
for(int i =0; i < array_size; i++)
在<
而不是<=
上使用emphisis
在您的代码中,您对项目的索引超出了范围;因为a[3][4]在技术上是第4列第5行
C++会让你索引越界,而你实际上只是索引内存中的随机值,这是不好的
尝试打印a[2][3]
,这应该是您所期望的。