我很困惑递归在这个例子中如何工作。如果输入'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'命令),并且回溯调试执行的程序?递归的解释可能很困难,而且这很大程度上取决于您的文化和科学背景。 –
你确定它有效吗? –