for循环 数组下标越界导致死循环

如图所示函数,最终for语句会陷入死循环,无法结束。 原因在于:堆栈帧中 a[0]~ a[4] 之后是 i  而 访问a[5]时,其地址也是 i所在的地址 因此当你给a[5]赋值为0的时候,也就给 i 赋值为  0 了。 这个问题的原因就是C在编译的时候,不会对数组下标溢出做检查。 因此以后用类似这样的语句时,一定要注意控制数组下标,不要溢出了。 -------------------------
相关文章
相关标签/搜索