Stavo giocando con la ricorsione e ho fatto questa semplice funzione. Supponevo che avrebbe stampato 9-0 per lo stdout, ma stampa 0-9. Non riesco a vedere come ciò avvenga.Questa funzione ricorsiva mi infastidisce, cosa sta succedendo?
int main()
{
rec(10);
return 0;
}
int rec(int n){
if(n > 0)
printf("%d\n", rec(n -1));
return n;
}
Se le spiegazioni seguenti non "fanno clic", è possibile eseguire correttamente l'esecuzione in un debugger per vedere cosa sta succedendo. –
A proposito, mentre ci si aspetta che un buon programmatore possa leggere questa funzione (magari durante un'intervista?), Non dovrebbe mai scrivere codice come questo. Un buon codice non dovrebbe farti pensare. –