Nederlandse leereditie
Voorbeelden van functies en recursie in C
Verbind prototypes, waardeoverdracht en objectwijzigingen via pointers.

Een prototype legt terugkeertype en parameters vast; de definitie moet overeenkomen. Argumenten worden gekopieerd: een gewone parameter wijzigen verandert niet de variabele van de aanroeper.
Geef adressen door en schrijf via de pointers om waarden van de aanroeper te wisselen. Dit heet soms doorgeven per referentie, maar C geeft steeds de pointerwaarde door.
Leg bij recursie eerst het basisgeval vast en zorg dat elke aanroep het probleem verkleint. Test kleine invoer en houd rekening met stackruimte.
Broncode
#include <stdio.h>
#include <stdlib.h>
// Function prototypes
unsigned long long factorial(unsigned int n);
void swap(int *a, int *b);
int add(int x, int y);
int main(void) {
int a = 15, b = 30;
printf("1. Sum function: %d + %d = %d\n", a, b, add(a, b));
printf("\n2. Pass-by-Reference Swap:\n");
printf(" Before swap: a = %d, b = %d\n", a, b);
swap(&a, &b);
printf(" After swap: a = %d, b = %d\n", a, b);
printf("\n3. Recursive Factorials:\n");
for (unsigned int i = 0; i <= 6; i++) {
printf(" %u! = %llu\n", i, factorial(i));
}
return EXIT_SUCCESS;
}
int add(int x, int y) {
return x + y;
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// Recursive factorial with base case
unsigned long long factorial(unsigned int n) {
if (n <= 1) {
return 1; // Base case
}
return (unsigned long long)n * factorial(n - 1); // Recursive step
}Openen in de compilerVerwacht resultaat
1. Sum function: 15 + 30 = 45 2. Pass-by-Reference Swap: Before swap: a = 15, b = 30 After swap: a = 30, b = 15 3. Recursive Factorials: 0! = 1 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720
Veelgestelde vragen
Waarom blijven code en sommige resultaten Engels?
C-sleutelwoorden, namen, programmacommentaar en verwachte uitvoer blijven gelijk aan het origineel om uitvoerbare code en consistente tests te behouden. Uitleg en instructies zijn vertaald.