?? reservestring.cpp
字號:
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
遞歸在編譯系統里是通過堆棧來實現的,即如果函數當前層不滿足結束條件,就會再次調用其本身,在調用之前,編譯系統會為函數代碼、形參以及函數中定義的局部變量在堆棧中分配單元,即將這些信息暫時存儲起來,下一層函數若仍不滿足結束條件,則重復此過程,繼續將信息存儲在系統堆棧中。在本題中,每一層輸入的字符都已經存儲在了堆棧中。當滿足結束條件時,從最后層堆棧開始回歸,一層層的返回。此題中從最后輸入的回車符開始返回,完成了逆序將堆棧中存儲的字符輸出。
仔細“品”一下這個題目會發現很意思,特別是對理解遞歸的執行流程很有幫助(隨便找一本C語言的書,都會找到執行流程的示意圖)。不容易理解的就是那句putchar(c); 乍一看好像是輸入回車后只會把最后的一個字符(即回車符)輸出,而做了c!='\n'的限制后就應該什么都不輸出才對,其實這正是遞歸的實質所在。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -