C语言数组溢出会怎样?

Python07

C语言数组溢出会怎样?,第1张

数组下标越界是一个程序初学者最容易犯的错误之一。以一个简单的一维数组为例:int a[10]这是一个整型的数组a,有10个元素:a[0]-a[9],因为正确的下标应该是从0开始,到9结束,与生活习惯中的1-10不一样,于是产生一个a[10]的错误,即数组下标越界。c和c++语言中数组下标越界,编译器是不会检查出错误的,但是实际上后果可能会很严重,比如有时会出现“乱码”,即莫名的数据,严重时发生程序崩溃等,所以在日常的编程中,程序员应当养成良好的编程习惯,避免这样的错误发生。若编辑网页时提示“数组下标越界”,除检查下上述问题外,再检查下文件中变量名称是否一致,很多时候是变量名称不一致所致使用的下标大于等于数组的长度或为负数!

首先,这个不叫溢出,这个是数组越界

其次两个代码都是数组越界的,只不过第一个由于后续的定义的数组做了初始化,大片的内存被赋值为'',所以输出后没有看出来而已