我试图用C中的for循环将元素添加到数组中,但是发生了一些奇怪的事情。I变量受使用scanf输入的数字的影响。
int intArray[4];
int i;
printf("Input 5 numbers\n");
for(i=0;i<5;i++){
scanf("%d", &intArray[i]);
printf("i: %d\n",i);
}产出实例:


当i=3时,任何大于3的输入数都会按预期工作,或插入大于3的数字。
我不明白为什么我用这种方式改变这个for循环。
任何帮助都将不胜感激。
发布于 2015-11-08 02:51:48
intArray[4]有索引0、1、2、3。您的for循环的结束条件是i<5,所以它使用索引4,它超过了数组的末尾,并且可能与变量i一致。
发布于 2015-11-08 02:55:32
数组是基于零的,所以在您的例子中,i<5将产生无效的索引(i从0到4),因为它应该是(i从0到3-4元素)。
https://stackoverflow.com/questions/33590192
复制相似问题