我有问题,理解这个代码:递归在C++函数
#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,然后向下打印剩下的数字?
由于第二个'cout << numm;',它在每个'Print_numm(numm + 1)'处停止并在其完成时继续。 – AntiHeadshot
你能详细说一下吗? –
你为什么不[用调试器进入你的代码](https://www.youtube.com/watch?v=C0vDKXIq_9A)?或者只用一张纸和一支笔手动追踪它? – sashoalm