数组元素的下标,可以是任何整数,可以是负数,也可以大于数组的元素个数。不会导致编译错误。
int a[10];
a[-2]=10;a[10]=100;均可能导致程序运行出错。
因为可能写入了别的变量的内存空间,或者写入指令的内存空间。
用变量作为数组下标时,不小心会导致数组越界(变量下标值变为负数,或者太大)
可能引起以外修改其他变量的值,导致程序运行结果不正确。
可能试图访问不该访问的内存区域,导致程序崩溃。
数组越界的程序,用某些编译器编译后可能可以正确运行,换一个编译器编译后就运行错误