C语言越界问题
#include<stdio.h>int main()
{
int data[5];
int i;
for(i=0;i<=100;i++)
{
data[i]=i;
printf("%d\n",data[i]);
}
return 0;
}
第一个疑问:已经越界了,但这个程序依然编译成功并且运行时不报错,这是为什么呢
第三个疑问:当i的值在5到17的时候,编译成功,但是运行报错,一旦大于17,编译跟运行都不报错,为什么呢;
第二个疑问:data[i]最终结果到52就停止了,为什么不能大于52。