这是我前几天在采访中遇到的一个问题,有人能告诉我这个“简单”代码背后的“真相”吗?
#include<stdio.h>
int main()
{
int a[]={1,2,3};
for(int i=0; i<=3; i++){
a[i]=0;
printf("%d\n", i);
}
return 0;
}
最佳答案
如果将 <= 替换为 <,一切都会正确,因为它会导致数组越界索引错误并将打印值 0 1 2 3 虽然数组内容的值每次都会为0
关于c - 为什么这段代码会超出范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39774244/