Cout打印Bidimensional int数组的错误值,而代码似乎是正确的



下面的代码看起来是正确的,但它会打印不正确的数字,每次都是随机的!我真的从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],这应该是您所期望的。

相关内容

  • 没有找到相关文章

最新更新