2 回答

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
舉個形象點的例子:輸入12345.
輸出.54321
這是一個遞歸函數,再次調用的時候,對程序而言,舊的reverse函數運行狀態(tài)已經被保存在堆棧中了,因而局部變量ch不會被覆蓋。就好像有六本一樣的書,都叫reverse,第一本書上我寫1,放到桌上,第二本同樣的位置寫2,放到第二本書上,此時,第二本上的2并不會覆蓋第一本上的1。第三本寫3,放到第二本...直至第五本。
第六本寫上.
現在開始輸出,把六本書一本本拿起,首先,我看到了第六本上的.,拿走第六本,然后看到第五本上的5,拿走,然后是第四本上的4,再拿走...最后拿走第一本拿走時我看到的順序就是.54321
修改成'\n'會失敗的原因是cin>>會自動忽略空白字符(' ','\t','\n'),所以程序永遠無法獲取'\n‘,這個放書的過程也永遠不會結束。建議詳細學習一下程序堆棧的原理,就好理解了,這里不好細講。

12345678_0001
TA貢獻1802條經驗 獲得超5個贊
添加回答
舉報
0/150
提交
取消