Heim >häufiges Problem >Was bedeutet rekursiver Aufruf einer Funktion?
Empfohlenes Tutorial: Java-Tutorial
Rekursive Definition
Der rekursive Aufruf besteht darin, die aktuelle Funktion in der aktuellen Funktion aufzurufen und die entsprechenden Parameter zu übergeben. Diese Aktion wird Schicht für Schicht ausgeführt, bis die allgemeine Situation erfüllt ist. Stoppen Sie den rekursiven Aufruf und beginnen Sie mit der Rückkehr vom letzten rekursiven Aufruf.
Detaillierte Erklärung der Rekursion
Vor dem Aufruf
Wenn eine Funktion während des Aufrufs eine andere Funktion aufruft Vor dem Ausführen der aufgerufenen Funktion muss das System drei Dinge ausführen:
(1) Übergeben Sie alle tatsächlichen Parameter, Rückgabeadressen und andere Informationen zur Speicherung an die aufgerufene Funktion.
(2 ) Speicherbereich für lokale Variablen der aufgerufenen Funktion zuweisen
(3) Kontrolle an den Eingang der aufgerufenen Funktion übergeben.
Aufruf
Bevor von der aufgerufenen Funktion zur aufrufenden Funktion zurückgekehrt wird, sollte das System außerdem drei Aufgaben erledigen:
(1) Speichern Sie die aufgerufene Funktion Funktion Das Berechnungsergebnis der Funktion;
(2) Geben Sie den Datenbereich der aufgerufenen Funktion frei
(3) Übertragen Sie die Steuerung entsprechend der von gespeicherten Rücksprungadresse die aufgerufene Funktion. Wenn mehrere Funktionen verschachtelte Aufrufe bilden, gilt das Prinzip, nach dem letzten Aufruf zuerst zurückzukehren.
Merkmale rekursiver Funktionen
Die Strukturen aller rekursiven Funktionen sind ähnlich.
(1) Die Funktion muss sich selbst direkt oder indirekt aufrufen.
(2) Es muss eine Überprüfung der rekursiven Beendigungsbedingung erfolgen, dh nachdem die rekursive Beendigungsbedingung erfüllt ist, wird die eigene Funktion nicht mehr aufgerufen.
(3) Wenn die Bedingungen für die rekursive Beendigung nicht erfüllt sind, wird der Ausdruck aufgerufen, der den rekursiven Aufruf beinhaltet. Wenn die Funktion selbst aufgerufen wird, müssen sich die Parameter im Zusammenhang mit der Beendigungsbedingung ändern, und zwar in Richtung der rekursiven Beendigung.
Zusammenfassung
Das Funktionsaufrufprinzip stimmt mit der Implementierung des Datenstrukturstapels überein. Es zeigt auch, dass Funktionsaufrufe über den Stack implementiert werden.
Das obige ist der detaillierte Inhalt vonWas bedeutet rekursiver Aufruf einer Funktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!