ciao a tutti...
c'è un'anima pia che puo' aiutarmi a capire come funziona la ricorsione nel caso di questa, e in generale, nelle funzioni void?
Ho capito il meccanismo delle istanze che si aprono e si chiudono a ritroso nel caso di funzioni in cui le varie istanze restituiscono un valore all'istanza precedente...
Però nel caso di void... prendiamo questo programma
codice:
#include<iostream>
#include<cstdlib>
/* Fare una funzione ricorsiva che, dato un numero n, stampa tutti i numeri da 1 a n*/
using namespace std;
void stampa_numero(int n)
{
if (n==1)
cout<<n<<endl;
else
{
stampa_numero(n-1);
cout<<n<<endl;
}
}
int main()
{
int numero(0);
cout<<"Inserisci il numero n:";
cin>>numero;
stampa_numero(numero);
system("PAUSE");
return 0;
}
potete spiegarmi in che modo, una volta che arrivo all'istanza in cui n vale 1 (e stampo dunque 1 a video senza continuare la ricorsione) vengono chiuse via via anche le altre istanze? Non mi è molto chiaro...
grazie!