我很困惑遞歸在這個例子中如何工作。如果輸入'ABC \ n',則輸出CBA。如果有人能夠通過這個過程,我將不勝感激。C++遞歸堆棧
- 在main(),ReverseLine()被調用
本地automtic myInput取入 'ABC \ N'
然後檢查myInput關於 '\ n' 和EOF,這就是我開始越來越困惑
我認爲它說,A!= '\ n' 和阿!= EOF所以ReverseLine()再次調用,但然後呢???
如何遞歸的工作,我只是想了解的過程
THANKS
using namespace std;
void ReverseLine(){
int myInput;
myInput = cin.get();
if (myInput != '\n' && myInput != EOF)
ReverseLine();
if (myInput != EOF)
cout.put(myInput);
}
int main(){
ReverseLine();
return 0;
}
您已標記此問題C,但它是一個C++程序。 –
您是否嘗試使用調試器(例如Linux上的'gdb')以及單步執行('gdb'的''step'命令),並且回溯調試執行的程序?遞歸的解釋可能很困難,而且這很大程度上取決於您的文化和科學背景。 –
你確定它有效嗎? –