Void og Rekursion
Datatypen void som returtype i C
I programmeringssproget C forventes funktioner, der er erklæret med en specifik returtype, at have en return-sætning, som returnerer en værdi af den pågældende type. Der findes dog situationer, hvor en funktion ikke behøver at returnere noget – for eksempel hvis den blot viser tekst på skærmen. I sådanne tilfælde skal funktionen erklæres med typen void.
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
Nøgleordet void angiver, at en funktion ikke returnerer en værdi, og det kan også anvendes i forbindelse med pointere. Forsøg på at erklære en variabel af typen void vil resultere i en fejl, da compileren ikke kan afgøre hvor meget hukommelse der skal tildeles.
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
Rekursion
C understøtter muligheden for, at en funktion kan kalde sig selv, en teknik kendt som rekursion.
Forestil dig rekursion som handlingen at strække og derefter slippe en elastik. Det anvendes ofte i matematiske operationer, såsom beregning af fakulteter.
Fakulteter bruges ofte til at approksimere funktionsværdier ved at udvide disse funktioner til Taylor- eller Maclaurin-rækker.
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; }
I forbindelse med rekursion vil funktionen fortsætte med at kalde sig selv, indtil betingelsen n == 0 || n == 1 er opfyldt. Når denne betingelse er opfyldt, returneres resultaterne fra de efterfølgende factorial() funktionskald i omvendt rækkefølge, svarende til at folde et harmonika sammen. Når trin 6 er nået, vil det oprindelige kald til factorial(3) returnere 6.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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 og Rekursion
Stryg for at vise menuen
Datatypen void som returtype i C
I programmeringssproget C forventes funktioner, der er erklæret med en specifik returtype, at have en return-sætning, som returnerer en værdi af den pågældende type. Der findes dog situationer, hvor en funktion ikke behøver at returnere noget – for eksempel hvis den blot viser tekst på skærmen. I sådanne tilfælde skal funktionen erklæres med typen void.
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
Nøgleordet void angiver, at en funktion ikke returnerer en værdi, og det kan også anvendes i forbindelse med pointere. Forsøg på at erklære en variabel af typen void vil resultere i en fejl, da compileren ikke kan afgøre hvor meget hukommelse der skal tildeles.
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
Rekursion
C understøtter muligheden for, at en funktion kan kalde sig selv, en teknik kendt som rekursion.
Forestil dig rekursion som handlingen at strække og derefter slippe en elastik. Det anvendes ofte i matematiske operationer, såsom beregning af fakulteter.
Fakulteter bruges ofte til at approksimere funktionsværdier ved at udvide disse funktioner til Taylor- eller Maclaurin-rækker.
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; }
I forbindelse med rekursion vil funktionen fortsætte med at kalde sig selv, indtil betingelsen n == 0 || n == 1 er opfyldt. Når denne betingelse er opfyldt, returneres resultaterne fra de efterfølgende factorial() funktionskald i omvendt rækkefølge, svarende til at folde et harmonika sammen. Når trin 6 er nået, vil det oprindelige kald til factorial(3) returnere 6.
Tak for dine kommentarer!