C语言二维数组下标越界问题;

2025-04-13 03:35:09
推荐回答(2个)
回答1:

例如 int a[10]; 这是一个整型的数组a,有10个元素:a[0]-a[9],因为正确的下标应该是从0开始,到9结束,与生活习惯中的1-10不一样,a[10]是不存在的 如果你使用a[10] 于是产生一个a[10]的错误,即数组下标越界。c和c++语言中数组下标越界,编译器是不会检查出错误的,但是实际上后果可能会很严重,比如程序崩溃等

回答2:

因为c语言会把数组中未赋值的值赋值为0

int a[][3]={{0},{1},{2}};

等价于
int a[][3]={{0,0,0},
{1,0,0},
{2,0,0}};
所以a[1][2]为0