#include <iostream>void countdown(int n);int main(){countdown(4);return 0;}void countdown(int n){using namespace std;cout<<"Counting down ... "<<n<<endl;if(n>0){countdown(n-1);}cout<<n<<": Kaboom!\n";}
Note that each recursive call creates its own set of variables. Therefore, when the program reaches 5th calls, there will be five independent n variables, each of which has different values. To verify this, you can modify the program list to display the address and value of N:
void countdown(int n){using namespace std;cout<<"Counting down ... "<<n<<" n at "<<&n<<")"<<endl;if(n>0){countdown(n-1);}cout<<n<<": Kaboom!"<<" (n at "<<&n<<")"<<endl;}
Counting down ... 4 n at 0012FF30)Counting down ... 3 n at 0012FED8)Counting down ... 2 n at 0012FE80)Counting down ... 1 n at 0012FE28)Counting down ... 0 n at 0012FDD0)0: Kaboom! (n at 0012FDD0)1: Kaboom! (n at 0012FE28)2: Kaboom! (n at 0012FE80)3: Kaboom! (n at 0012FED8)4: Kaboom! (n at 0012FF30)