我有問題,理解這個代碼:遞歸在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