[問題] C遞迴將陣列內容反向輸出
最近剛學C語言 學到了遞迴的部分
在網路上看到了將陣列內容反向輸出的範例
https://pastebin.com/uv3rij55
想請問為什麼那個遞迴副程式可以反向輸出
我的想法 當主程式invert(0)呼叫副程式後
一開始j=0所以小於6進到if
結果又碰到invert(j+1) 又呼叫了一次開始遞迴
這次變成j=1 依照這樣下去當j=6後就不滿足if的條件 跳離遞迴
所以永遠執行不到副程式的printf才對呀!
為什麼這個程式執行的結果卻能達到將list的內容反向?
希望可以解惑一下謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.82.112.209
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1509270461.A.84F.html
※ 編輯: x93939512 (115.82.112.209), 10/29/2017 17:48:42
推
10/29 17:51,
8年前
, 1F
10/29 17:51, 1F
推
10/29 18:00,
8年前
, 2F
10/29 18:00, 2F
→
10/29 18:01,
8年前
, 3F
10/29 18:01, 3F
→
10/29 18:01,
8年前
, 4F
10/29 18:01, 4F
→
10/29 18:02,
8年前
, 5F
10/29 18:02, 5F
※ 編輯: x93939512 (115.82.112.209), 10/29/2017 18:02:18
→
10/29 18:02,
8年前
, 6F
10/29 18:02, 6F
→
10/29 18:02,
8年前
, 7F
10/29 18:02, 7F
所以我能這樣理解嗎?
當j=0的時候要進到invert(j+1)前
電腦會在這邊設個傳點1
告訴我等等記得回來執行printf
依此類推j=5時會設傳點6
而我j=6時跳出if 電腦會知道我遞迴結束了
然後由傳點6的printf依序輸出到傳點1的printf這樣對嗎?謝謝
※ 編輯: x93939512 (115.82.112.209), 10/29/2017 18:22:59
→
10/29 18:38,
8年前
, 8F
10/29 18:38, 8F
→
10/29 18:38,
8年前
, 9F
10/29 18:38, 9F
→
10/29 18:38,
8年前
, 10F
10/29 18:38, 10F

→
10/29 18:39,
8年前
, 11F
10/29 18:39, 11F
→
10/29 18:39,
8年前
, 12F
10/29 18:39, 12F
→
10/29 18:40,
8年前
, 13F
10/29 18:40, 13F
→
10/29 18:40,
8年前
, 14F
10/29 18:40, 14F
感謝說明終於懂了xD
自己想了好久,那張圖很清楚!
謝謝
→
10/29 18:46,
8年前
, 15F
10/29 18:46, 15F
→
10/29 18:46,
8年前
, 16F
10/29 18:46, 16F
不過也剛好讓我這新手 能夠搞懂一些觀念 雖然我真的想破頭超久><
※ 編輯: x93939512 (115.82.112.209), 10/29/2017 18:46:51
※ 編輯: x93939512 (115.82.112.209), 10/29/2017 18:48:25
→
10/30 09:11,
8年前
, 17F
10/30 09:11, 17F
→
10/30 09:13,
8年前
, 18F
10/30 09:13, 18F
→
10/30 09:13,
8年前
, 19F
10/30 09:13, 19F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章