我有理解这段代码的问题:
#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;
}
Run Code Online (Sandbox Code Playgroud)
输出是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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |