Int main(void)
{
int i=0i;
int a[10];
for(i=0;i<=10;i++)
{
a[i]=0;
}
return 0;
}
上述程序是可以正常执行,不会报错。
Int main(void)
{
int a[10];
int i=0i;
for(i=0;i<=10;i++)
{
a[i]=0;
}
return 0;
}
上述程序编译通过,但是运行会出错,出现死循环。
如果先定义int a[10];再定义int i=0;,则a[10]是不存在的,给a[10]赋值0,则0直接保存到内存中,而i可能就存放在a[9]内存的后面一块内存中,故0把i覆盖掉了,从而出现死循环。