Un concept peu utilisé dans C est fonction récursivité. Une fonction récursive est simplement une fonction qui s'appelle elle-même . Les fonctions récursives peuvent être utiles dans certaines fonctions , mais peuvent généralement être remplacé en utilisant une boucle . But de la fonction récursive Une fonction récursive peut être utilisé lorsqu'une opération doit être effectuée à plusieurs reprises sur un ensemble de données. Par exemple, une fonction récursive peut effectuer plusieurs fois une opération mathématique sur une valeur numérique jusqu'à ce qu'une condition soit remplie . Création d'une fonction récursive Toute fonction qui appelle lui-même est une fonction récursive . Il n'y a pas d'exigences particulières pour une fonction à appeler lui-même , il ne peut le faire que Cait appellerait une autre fonction. À titre d'exemple , ce qui suit est une fonction récursive pour calculer le nombre suivant dans une séquence de Fibonacci : longue fib (long n) { if ( n < = 2) { return 1; } autre { retour fib ( n - 1) + fib (n - 2); } } problèmes avec récursivité récursivité a plusieurs problèmes possibles qui devraient être considérés avant d'écrire une fonction récursive . Les fonctions récursives peuvent être très inefficaces , non seulement il ya une surcharge de la pile des appels répétés de la fonction , fonctions récursives peuvent facilement se retrouver avec des temps de fonctionnement exponentielles selon la façon dont elles sont écrites . Les fonctions récursives courent également un risque de causer un débordement de pile si le nombre d'appels récursifs est trop élevé. Récursivité Vs . Itération La plupart des fonctions récursives peuvent être mises en œuvre en fonction non récursive qui utilise une boucle itérative . Ceci tend à être plus efficace et plus sûr , mais dans certains cas peut être plus difficile à écrire et à lire. Fonctions récursives sont le plus souvent utilisés lors de la navigation d'une structure en forme d'arbre , ou lors de l'utilisation itération rendraient le fonctionner beaucoup plus complexe. Dans la plupart des autres cas , l'itération doit être utilisé à la place.
|