Pues estoy leyendo sobre la recursividad y estoy totalmente perdido, no entiendo nada, dice que las llamadas a la funcion no se realizan en el momento de la llamada, sino que se acumulan hasta cumpla una condicion, y despues se ejecutan en orden inverso, es decir, que la primera llamada que se hizo es la ultima en ejecutarse?
Alguien amable podria explicarme esto de una forma algo mas facil, porque estoy muy perdido.
Gracias
EDITO: a ver, algo creo que voy entendiendo, de ejemplo me trae este codigo:
Antes de nada, no he compilado el codigo, voy a fiarme del libro, A ver si me explico y lo he entendido bien, este programa se supone que escribe el texto introducido al reves, ejemplo:
Cuaado tu introduces una letra, por ejemplo a, no la escribe, sino que vuelve a llamar a la funcion, es decir entra en bucle ejecutando la linea:
Espero haberlo entendido bien, porque es el ultimo punto de este tema y estoy deseando pasar de tema, pero no sin antes haberlo entendido todo perfectamente.
Gracias de nuevo
Alguien amable podria explicarme esto de una forma algo mas facil, porque estoy muy perdido.
Gracias
EDITO: a ver, algo creo que voy entendiendo, de ejemplo me trae este codigo:
Código (c) [Seleccionar]
#include <stdio.h>
#define EOLN '\n'
void inverso(void);
int main() {
printf("Introduce una linea de texto debajo: \n");
inverso();
}
void inverso(void) {
char c;
if((c = getchar) != EOLN) inverso();
putchar(c);
return;
}
Antes de nada, no he compilado el codigo, voy a fiarme del libro, A ver si me explico y lo he entendido bien, este programa se supone que escribe el texto introducido al reves, ejemplo:
Citarhola - aloh
Cuaado tu introduces una letra, por ejemplo a, no la escribe, sino que vuelve a llamar a la funcion, es decir entra en bucle ejecutando la linea:
Código (c) [Seleccionar]
if((c = getchar) != EOLN) inverso();
hasta que la condicion del if se cumpla, entonces como segun el libro el orden de las llamdas es inverso, la primera letra que introduje sera la ultima en mostrarse, y asi con el resto de caracteres, estoy en lo cierto?Espero haberlo entendido bien, porque es el ultimo punto de este tema y estoy deseando pasar de tema, pero no sin antes haberlo entendido todo perfectamente.
Gracias de nuevo