int main(){
int i;
int arr[4];
for(int i=0; i<=4; i++){
arr[i] = 0;
}
return 0;
}
- 我在 youtube 上观看了 CS107(第 13 讲)的视频,其中显示了这个示例,并通过显示内存图告诉了为什么上述程序会导致无限循环。arr[4] 越界,应该指向存储 i 的地址,并将 i 的值更改回 0,从而导致无限循环。但是当我尝试使用 gcc 编译器在我的 mac 上运行它时,for 循环执行了 5 次(通过插入 printf 进行检查)。即 i = 0,1,2,3,4 的值。