Navigation

2.5.4 Rekursiver Aufruf von Funktionen

Funktionen können in C rekursiv aufgerufen werden. Angewendet wird dies oft bei rekursiv definierten mathematische Verfahren. Dies funktioniert, da die Variablen x und i in einem Stack für jedem Aufruf der Funktion power() neu abgelegt werden.

BEISPIELE/b254.c: 

#include <stdio.h>

int power(x, i)
int x,i;
{
    if (i==0) return(1);
    if (i<0) return(1/power(x,-i)); /* rekursiver Aufruf power */
    printf("funkt.: %d %d\n", x, i);
    return(x * power(x,i-1));       /* rekursiver Aufruf power */
}

main()
{
    printf("Das Ergebnis lautet: %d\n",power(2,3));
}

Rekursiver Funktionsaufruf und Ergebnisrückgabe
==> power(2,3) ==> power(2,2) ==> power(2,1) ==> power(2,0)
<== return(8) <== return(4) <== return(2) <== return(1)
Navigation