我试图在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循环。
任何帮助都将不胜感激。
答案 0 :(得分:1)
intArray[4]
有索引0,1,2,3。你的for循环结束条件是i<5
,所以它使用索引4,它超过了数组的末尾,并且可能与变量i
重合。
答案 1 :(得分:0)
好吧,数组基于零,所以在你的情况下 我&lt;将导致5(i从0到4) 这是无效的,超出索引,因为它应该是(我从0到3-4元素)