第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于C++函數調用反向輸出字符串的問題?

關于C++函數調用反向輸出字符串的問題?

翻過高山走不出你 2019-02-06 09:06:59
關于C++函數調用反向輸出字符串的問題
查看完整描述

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‘,這個放書的過程也永遠不會結束。建議詳細學習一下程序堆棧的原理,就好理解了,這里不好細講。

查看完整回答
反對 回復 2019-03-21
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

遞歸的本質:遞推->終止->回歸
當輸入的字符不為'.'的條件下,遞歸函數一直調用自身進行循環(huán),每調用一次,函數就在棧中分配一個新的單元以保護現場,直到當輸入'.'時,遞歸終止,開始往回釋放??臻g,每釋放一次,就輸出一個字符。而棧的進出原則是先進后出,所以這就是為什么一個char字符能實現字符串的反向輸出的原理。至于你說的為什么不用'\n’,只是因為'\n'是換行符,換行符是轉義字符,而轉義字符時無法從鍵盤輸入的。

查看完整回答
反對 回復 2019-03-21
  • 2 回答
  • 0 關注
  • 723 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號