Tutoriel recommandé : Tutoriel Java
Définition récursive
L'appel récursif consiste à appeler la fonction actuelle dans la fonction actuelle et à transmettre les paramètres correspondants. Cette action est effectuée couche par couche jusqu'à ce que la situation générale soit remplie. arrêtez l'appel récursif et commencez à revenir du dernier appel récursif.
Explication détaillée de la récursivité
Avant d'appeler
Lorsqu'une fonction appelle une autre fonction pendant le en cours d'exécution, avant d'exécuter la fonction appelée, le système doit effectuer trois choses :
(1) Transmettre tous les paramètres réels, adresses de retour et autres informations à la fonction appelée pour le stockage
(2) ) Allouer une zone de stockage pour les variables locales de la fonction appelée
(3) Transférer le contrôle à l'entrée de la fonction appelée.
Appel
Avant de revenir de la fonction appelée à la fonction appelante, le système doit également effectuer 3 tâches :
(1) Enregistrer l'appelé function Le résultat du calcul de la fonction ;
(2) Libérer la zone de données de la fonction appelée
(3) Transférer le contrôle à la fonction appelante en fonction de l'adresse de retour enregistrée par la fonction appelée. Lorsqu'il existe plusieurs fonctions formant des appels imbriqués, le principe du retour en premier après le dernier appel est suivi.
Caractéristiques des fonctions récursives
Les structures de toutes les fonctions récursives sont similaires.
(1) La fonction doit s'appeler directement ou indirectement.
(2) Il doit y avoir une vérification de la condition de terminaison récursive, c'est-à-dire qu'une fois la condition de terminaison récursive remplie, sa propre fonction ne sera plus appelée.
(3) Si les conditions de terminaison récursive ne sont pas remplies, l'expression impliquant l'appel récursif est appelée. Lorsque la fonction elle-même est appelée, les paramètres liés à la condition de terminaison doivent changer, et ils doivent changer dans le sens d'une terminaison récursive.
Résumé
Le principe d'appel de fonction est cohérent avec la mise en œuvre de la pile de structure de données. Cela montre également que les appels de fonction sont implémentés via la pile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!