Een weinig gebruikte begrip in C is de functie recursie . Een recursieve functie is gewoon een functie die zichzelf aanroept . Recursieve functie kan nuttig zijn in bepaalde functies , maar kunnen gewoonlijk worden vervangen door een lus . Doel van recursieve functie recursieve functie kan worden gebruikt wanneer een operatie moet herhaald worden uitgevoerd op een reeks gegevens . Bijvoorbeeld , kan een recursieve functie herhaaldelijk Elke functie die noemt zichzelf is het uitvoeren van een wiskundige bewerking op een numerieke waarde totdat een voorwaarde wordt voldaan . Het maken van een recursieve functie een recursieve functie . Er zijn geen speciale vereisten voor een functie om zelf te bellen , maar het kan dit doen als cait een andere functie zou noemen . Als voorbeeld , de volgende is een recursieve functie om het volgende nummer te berekenen in een Fibonacci-reeks : lange fib ( lang n ) { if ( n < = 2 ) op { return 1 ; } anders { return fib ( n - 1 ) + fib ( n - 2 ) ; } } Problemen Met Recursion Recursion heeft een aantal mogelijke problemen die moeten worden overwogen voor het schrijven van een recursieve functie . Recursieve functies kan zeer inefficiënt , niet alleen is er een stapel overhead niet telkens de functie aanroept , recursieve functies gemakkelijk eindigen met exponentiële looptijden afhankelijk van hoe ze zijn geschreven . Recursieve functies lopen ook een risico op het veroorzaken van een stack overflow als het aantal recursieve oproepen is te hoog . Recursion Vs . Iteratie Meest recursieve functies kan worden uitgevoerd als een niet - recursieve functie die gebruik maakt van een iteratieve lus . Deze neiging om efficiënter en veiliger , maar in sommige gevallen kan het moeilijker om te schrijven en te lezen . Recursieve functies worden meestal gebruikt bij het navigeren van een boomstructuur , of wanneer iteratie zou de veel complexer functioneren. In de meeste andere gevallen dient iteratie plaats daarvan worden gebruikt .
|