我想添加元素與C中的for循環數組,但是有一些奇怪的事情正在發生。 i變量受使用scanf輸入的數字影響。的輸出將元素添加到C中的數組for循環遞增永遠
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);
}
實例:
和任意數量的按預期或任意數量的插入大於3當i = 3
大於3輸入不斷工作我不明白爲什麼我以這種方式改變這個循環。
任何幫助,將不勝感激。
啊我看到了錯誤,現在該如何解決。但爲什麼這會改變循環內的「i」變量?同樣,爲什麼輸入大於3的數字也能克服這個問題呢? – PlasmaticDW
簡短回答:未定義的行爲是未定義的。較長的回答:'intArray [4]'可能與'i'是同一塊內存,所以你覆蓋'i'。至於數字> 3,有趣。 > 4我會(因爲我不會<5循環會停止)。 – John3136