#include <stdio.h>
//访问越界
int main() {
int a[5]={1,2,3,4,5}; //初始化一个5个位置的数组
int j=20; //初始化j
int i=10; //初始化i
a[5]=6; //初始化数组的第6个位置为6
a[6]=7; //初始化数组的第七个位置为7
printf("i=%d\n",i);
return 0;
}
这个代码输出变量i的结果,竟然是个数组a[6]的值
为什么会出现这种情况呢?首先:我们初始化了一个数组5个位置,
然后:int j和i变量进行初始化,而i变量正好在数组5个位置过后两个
最后:我们又对a[6]进行初始化 ,也就是第七个位置,准确的说就是i变量的位置 。
所以:我们变量i的值被a[6]=7,给覆盖了。这就是我们的C语言【访问越界】。而越界访问是非常危险的,大多时候是我们不小心造成的。