在C中为数组添加元素,以便循环递增

时间:2015-11-08 02:47:16

标签: arrays

我试图在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);
    }

产出的例子:

Entering only 1's

Entering only 2's

当i = 3时,任何大于3输入的数字都会按预期工作或插入大于3的任何数字

我不明白为什么我会以这种方式改变这个for循环。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

intArray[4]有索引0,1,2,3。你的for循环结束条件是i<5,所以它使用索引4,它超过了数组的末尾,并且可能与变量i重合。

答案 1 :(得分:0)

好吧,数组基于零,所以在你的情况下 我&lt;将导致5(i从0到4) 这是无效的,超出索引,因为它应该是(我从0到3-4元素)