数组越界是指:数组定义时有十个元素,那么a[0] -- a[5] 分别对应相应的元素,在程序中如果使用了a[16]那么就超出了原来的数组定义的范围,这就是数组下标越界。
c和c++语言中数组下标越界,编译器是不会检查出错误的,但是实际上后果可能会很严重,比如程序崩溃等,所以在日常的编程中,程序员应当养成良好的编程习惯,避免这样的错误发生。
#include <stdio.h>
#include <stdlib.h>
/* *****array bound -- 数组越界******
b[5] 只有6个数组成员,这边复值的话是8 个超过部分
就是数组越界,越界以后会影响其他变量
*/
int main()
{
int i, a=1,c=2,b[5]={0};
printf("%p, %p, %p, %p\n",b, &c, &a, &i);// %p-地址符
for(i=0;i<8;i++)
{
b[i]=i;
printf("%d", b[i]);
}
printf("\nc=%d,a=%d,i=d\n",c, a, i);
return 0;
}