代码的意思是说,在声明的时候,因为栈的分配原因(先入后出),k[10]就是i的地址。然后i就会被修改成0,循环再次开始,就这样出现了一个死循环。
为什么k[10]就是i的地址呢?
int m=1;
int i =0;
int k[10] = {0};
printf("&m=%d\n",&m);
printf("&i=%d\n",&i);
printf("&k[0]=%d\n",&k[0]);
printf("&k[9]=%d\n",&k[9]);
printf("&k[10]=%d\n",&k[10]);
for(;i <= 10; ++i)
{
k[i] = 0;
}
printf("HelloWorld!\n");