Estaba jugando con recursividad e hice esta simple función. Asumí que imprimiría 9-0 a stdout, pero imprime 0-9. No puedo ver cómo sucede eso en absoluto.Esta función recursiva me desconcierta, ¿qué está pasando?
int main()
{
rec(10);
return 0;
}
int rec(int n){
if(n > 0)
printf("%d\n", rec(n -1));
return n;
}
Si las siguientes explicaciones no hacen 'clic', puede hacer bien al pasar la ejecución en un depurador para ver qué está pasando. –
Por cierto, aunque se espera que un buen programador pueda leer esta función (¿quizás durante una entrevista?), Nunca deberían escribir código como este. Un buen código no debería hacerte pensar. –