首页 > 其他分享 >c语言的【访问越界】

c语言的【访问越界】

时间:2023-03-23 17:32:24浏览次数:33  
标签:初始化 语言 int 位置 越界 访问 数组 变量

#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]的值 

c语言的【访问越界】_初始化


为什么会出现这种情况呢?首先:我们初始化了一个数组5个位置,

  然后:int j和i变量进行初始化,而i变量正好在数组5个位置过后两个

  最后:我们又对a[6]进行初始化 ,也就是第七个位置,准确的说就是i变量的位置 。

  所以:我们变量i的值被a[6]=7,给覆盖了。这就是我们的C语言【访问越界】。而越界访问是非常危险的,大多时候是我们不小心造成的。

c语言的【访问越界】_#include_02


标签:初始化,语言,int,位置,越界,访问,数组,变量
From: https://blog.51cto.com/u_16003115/6145774

相关文章