gpt4 book ai didi

c++ - C++ 中函数的递归

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

我无法理解这段代码:

#include <iostream>
using namespace std;

void Print_numm(int numm){
cout<<numm;
if (numm<=4) {
Print_numm(numm+1);
}
cout<<numm;
}


int main() {
Print_numm(1);
return 0;
}

输出为 1234554321。在打印 123455 之前,我理解递归。但是为什么编译器将其余数字打印为 1?编译器是否每次都执行第二个“cout”?如果是这样,它如何保持数字直到打印到 5,然后向下打印其余数字?

最佳答案

如果将调用的执行可视化,将更容易理解:

Print_numm(1)
-> cout 1
-> Print_numm(2)
--> cout 2
-->Print_numm(3)
---> cout 3
---> Print_numm(4)
----> cout 4
----> Print_numm(5)
-----> cout 5
-----> cout 5
----> cout 4
---> cout 3
--> cout 2
-> cout 1

关于c++ - C++ 中函数的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33547253/

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