Void en Recursie
Het void-retourtype in C
In de programmeertaal C wordt van functies die met een specifiek retourtype zijn gedeclareerd verwacht dat ze een return-statement bevatten, waarmee een waarde van dat type wordt teruggegeven. Er zijn echter situaties waarin een functie niets hoeft terug te geven – bijvoorbeeld wanneer alleen tekst op het scherm wordt weergegeven. In dergelijke gevallen moet de functie worden gedeclareerd met het type void.
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
Het sleutelwoord void geeft aan dat een functie geen waarde retourneert, en kan ook worden gebruikt in de context van pointers. Pogingen om een variabele van het type void te declareren resulteren in een fout, omdat de compiler dan niet weet hoeveel geheugen moet worden gereserveerd.
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
Recursie
C ondersteunt de mogelijkheid voor een functie om zichzelf aan te roepen, een techniek die bekend staat als recursie.
Stel recursie voor als het uitrekken en vervolgens loslaten van een elastiekje. Het wordt vaak gebruikt bij wiskundige bewerkingen, zoals het berekenen van faculteiten.
Faculteiten worden vaak toegepast bij het benaderen van functiewaarden door deze functies uit te breiden in Taylor- of Maclaurin-reeksen.
Main.c
1234567891011121314151617181920#include <stdio.h> int factorial(int n) { // if n = 0 or 1, because 0! = 1 and 1! = 1 if (n == 0 || n == 1) return 1; // recursion case else return n * factorial(n - 1); } int main() { int n = 3; printf("factorial(%d) = %d\n", n, factorial(n)); return 0; }
In de context van recursie blijft de functie zichzelf aanroepen totdat aan de voorwaarde n == 0 || n == 1 is voldaan. Zodra deze voorwaarde is bereikt, worden de resultaten van de daaropvolgende aanroepen van de functie factorial() in omgekeerde volgorde teruggegeven, vergelijkbaar met het dichtvouwen van een accordeon. Tegen de tijd dat stap 6 is bereikt, zal de initiële aanroep van factorial(3) de waarde 6 retourneren.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain more about how recursion works in C?
What are some common mistakes to avoid when using recursion?
Can you give an example of a recursive function in C?
Awesome!
Completion rate improved to 2.63
Void en Recursie
Veeg om het menu te tonen
Het void-retourtype in C
In de programmeertaal C wordt van functies die met een specifiek retourtype zijn gedeclareerd verwacht dat ze een return-statement bevatten, waarmee een waarde van dat type wordt teruggegeven. Er zijn echter situaties waarin een functie niets hoeft terug te geven – bijvoorbeeld wanneer alleen tekst op het scherm wordt weergegeven. In dergelijke gevallen moet de functie worden gedeclareerd met het type void.
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
Het sleutelwoord void geeft aan dat een functie geen waarde retourneert, en kan ook worden gebruikt in de context van pointers. Pogingen om een variabele van het type void te declareren resulteren in een fout, omdat de compiler dan niet weet hoeveel geheugen moet worden gereserveerd.
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
Recursie
C ondersteunt de mogelijkheid voor een functie om zichzelf aan te roepen, een techniek die bekend staat als recursie.
Stel recursie voor als het uitrekken en vervolgens loslaten van een elastiekje. Het wordt vaak gebruikt bij wiskundige bewerkingen, zoals het berekenen van faculteiten.
Faculteiten worden vaak toegepast bij het benaderen van functiewaarden door deze functies uit te breiden in Taylor- of Maclaurin-reeksen.
Main.c
1234567891011121314151617181920#include <stdio.h> int factorial(int n) { // if n = 0 or 1, because 0! = 1 and 1! = 1 if (n == 0 || n == 1) return 1; // recursion case else return n * factorial(n - 1); } int main() { int n = 3; printf("factorial(%d) = %d\n", n, factorial(n)); return 0; }
In de context van recursie blijft de functie zichzelf aanroepen totdat aan de voorwaarde n == 0 || n == 1 is voldaan. Zodra deze voorwaarde is bereikt, worden de resultaten van de daaropvolgende aanroepen van de functie factorial() in omgekeerde volgorde teruggegeven, vergelijkbaar met het dichtvouwen van een accordeon. Tegen de tijd dat stap 6 is bereikt, zal de initiële aanroep van factorial(3) de waarde 6 retourneren.
Bedankt voor je feedback!