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