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
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...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; }
grazie!

Rispondi quotando