返回列表 发帖

一道c的基本功题目

程序堆栈问题吧,先把i入栈,然后就是num数组的空间,因为是栈的缘故,num的地址要低于i的地址,也就是i的地址就在num的地址后面,访问num[10]的时候实际上就是访问的i,然后程序中num[10]=0,就使i变为0 了,,然后i=0,就满足了循环条件i<=10,然后继续运行,就造成了一个死循环...如果把代码改成: int num[10]; int i; for(i=1;i<=10;i++) {num = 0; printf("%d:%d\n",i,num); } printf("loop end."); 应该就可以执行printf了, 呵呵,我开始也没想到,i怎么会变成0 的...

TOP

返回列表 回复 发帖