小编mas*_*ato的帖子

拥有一个 3x3 2d 数组并访问 array[1][3] 等于 array[2][0]?

基本上,我在课堂上遇到过这段代码:

#include <stdio.h>

int main() {

    int arr[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    printf("%d", arr[0][2]);
    printf("\n%d", arr[1][0]);

    printf("\n%d", arr[0][2 + 1]);
}
Run Code Online (Sandbox Code Playgroud)

我有点困惑,因为最后一个printf语句arr[0][2 + 1]等于arr[0][3],但由于我们的数组维度是 3x3,所以这使得我们的最大索引值仅为 2,从而arr[0][3]超出范围。但是当我运行这个东西时,它显示4,这与第二条语句相同printf,即arr[1][0],为什么会发生这种情况?

我期待类似的错误,它会告诉我它超出了范围,但它继续打印数组的下一个索引值。

c arrays multidimensional-array

4
推荐指数
1
解决办法
178
查看次数

标签 统计

arrays ×1

c ×1

multidimensional-array ×1