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

Cout prints incorrect values of Bidimensional int array, while code appears to be correct

以下代码看起来是正确的,但它会打印不正确的数字,每次都是随机的!我从 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 开始,并且数组中有 3 个项目,那么你的最后一行就是 2。这就是为什么 c++ 循环遍历数组总是

for(int i =0; i < array_size; i++)

强调 < 而不是 <=
在您的代码中,您对超出范围的项目进行索引;因为 a[3][4] 在技术上是第 4 列第 5 行。
C++ 会让你越界索引,而你实际上只是在内存中索引随机值,这并不好。
尝试打印 a[2][3],这应该是您所期望的。