[英]Hand execution in c, don't understand what index -1 means
我有這段代碼,我正在嘗試從中手動執行,但我不確定index - 1
是做什么的。 我的結果應該是1,5,6,8,9
還是1,3,5,6,8
還是我完全錯了?
void main() {
int array[5] = {1,3,4,6,7};
int index;
for (index = 1; index < 5; index++) {
array[index] = array[index - 1] + 2;
}
}
開始循環前數組中的值:1,3,4,6,7
index 的值設置在 for 循環每次迭代的頂部。
所以第一次通過循環時, index
被設置為表示值1
。
index-1
將保存值1-1
,或0
array[index - 1]
與array[0]
相同array[0]
保存值1
。array[index - 1] + 2
與1 + 2
或3
array[index]
,我們知道它代表array[1]
,它曾經保存3
的值,現在分配給(再次)保存值3
。第一次循環結束時數組中的值:1,3,4,6,7
現在,回到循環的頂部.. index
被告知將自身增加1
即: index
為 1 ,現在表示數字2
index-1
將保存值2-1
或1
。array[index - 1]
與array[1]
相同,array[1]
保存值3
array[index - 1]
+ 2,相當於3 + 2
,或者5
array[index]
,我們知道它代表元素array[2]
(它曾經保存4
的值) ,現在分配給保存值5
。第二次循環結束時數組中的值:1,3,5,6,7
等等。
array index index-1 array[index-1] array[index-1]+2 array[index]
1,3,4,6,7 1 0 1 3 array[1] = 3
1,3,4,6,7 2 1 3 5 array[2] = 5
1,3,5,6,7 3 2 5 7 array[3] = 7
1,3,5,7,7 4 3 7 9 array[4] = 9
1,3,5,7,9 5 (exits for loop since condition fails)
最終結果: 1 3 5 7 9
此外,您可以使用“在線 c 編譯器”來測試代碼片段。
這是一個: JDoodle
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.