Maison >Problème commun >Que signifie l'appel récursif d'une fonction ?

Que signifie l'appel récursif d'une fonction ?

angryTom
angryTomoriginal
2019-07-24 14:38:2115972parcourir

Que signifie l'appel récursif d'une fonction ?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn