簡體   English   中英

c中手工執行,不明白index -1是什么意思

[英]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] + 21 + 23
  • 那么,我們分配array[index] ,我們知道它代表array[1] ,它曾經保存3的值,現在分配給(再次)保存值3

第一次循環結束時數組中的值:1,3,4,6,7

現在,回到循環的頂部.. index被告知將自身增加1
即: index為 1 ,現在表示數字2

  • 所以index-1將保存值2-11
  • 所以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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM