gpt4 book ai didi

C++ 递归堆栈

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:19:29 24 4
gpt4 key购买 nike

我对递归在此示例中的工作方式感到困惑。如果输入 'ABC\n',则输出 CBA。如果有人可以逐步完成该过程,我将不胜感激。

  1. 在main()中调用了ReverseLine()
  2. 本地自动 myInput 接收 'ABC\n'

  3. 然后它检查 myInput 中的 '\n' 和 EOF,这是我开始感到困惑的地方

我认为它说的是,A != '\n' 和 A != EOF 所以 ReverseLine() 被再次调用,但是然后呢???

递归是如何进行的,我只想了解一下过程

谢谢

    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;

}

最佳答案

当您调用 ReverseLine 时,它​​会读取一个字符。如果该字符不是换行符或 EOF,它会再次调用自己(递归)读取下一个字符,直到遇到换行符,此时它打印它刚刚读取的字符,然后返回到 ReverseLine 打印它读取的字符并依此类推,直到它返回到对 ReverseLine 的初始调用,打印读取的第一个字符,然后退出。

关于C++ 递归堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12762702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com