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!