Void og Rekursjon
Returtypen void i C
I programmeringsspråket C forventes det at funksjoner som er deklarert med en spesifikk returtype har en return-setning som leverer en verdi som samsvarer med denne typen. Det finnes imidlertid situasjoner der en funksjon ikke trenger å returnere noe – for eksempel hvis den kun viser tekst på skjermen. I slike tilfeller bør funksjonen deklareres med typen void.
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
Nøkkelordet void angir at en funksjon ikke returnerer en verdi, og det kan også brukes i sammenheng med pekere. Hvis man forsøker å deklarere en variabel av typen void, vil det føre til en feil fordi kompilatoren ikke vet hvor mye minne som skal allokeres.
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
Rekursjon
C støtter muligheten for at en funksjon kan kalle seg selv, en teknikk kjent som rekursjon.
Tenk på rekursjon som handlingen å strekke og deretter slippe en strikk. Det brukes ofte i matematiske operasjoner, som for eksempel beregning av fakultet.
Fakultet benyttes ofte for å tilnærme funksjonsverdier ved å utvide disse funksjonene i Taylor- eller Maclaurin-rekker.
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 rekursjonssammenheng vil funksjonen fortsette å kalle seg selv til den møter betingelsen n == 0 || n == 1. Når denne betingelsen er oppfylt, returneres resultatene fra de påfølgende factorial()-funksjonskallene i motsatt rekkefølge, på samme måte som å folde et trekkspill. Når steg 6 er nådd, vil det opprinnelige kallet til factorial(3) returnere 6.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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 Rekursjon
Sveip for å vise menyen
Returtypen void i C
I programmeringsspråket C forventes det at funksjoner som er deklarert med en spesifikk returtype har en return-setning som leverer en verdi som samsvarer med denne typen. Det finnes imidlertid situasjoner der en funksjon ikke trenger å returnere noe – for eksempel hvis den kun viser tekst på skjermen. I slike tilfeller bør funksjonen deklareres med typen void.
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
Nøkkelordet void angir at en funksjon ikke returnerer en verdi, og det kan også brukes i sammenheng med pekere. Hvis man forsøker å deklarere en variabel av typen void, vil det føre til en feil fordi kompilatoren ikke vet hvor mye minne som skal allokeres.
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
Rekursjon
C støtter muligheten for at en funksjon kan kalle seg selv, en teknikk kjent som rekursjon.
Tenk på rekursjon som handlingen å strekke og deretter slippe en strikk. Det brukes ofte i matematiske operasjoner, som for eksempel beregning av fakultet.
Fakultet benyttes ofte for å tilnærme funksjonsverdier ved å utvide disse funksjonene i Taylor- eller Maclaurin-rekker.
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 rekursjonssammenheng vil funksjonen fortsette å kalle seg selv til den møter betingelsen n == 0 || n == 1. Når denne betingelsen er oppfylt, returneres resultatene fra de påfølgende factorial()-funksjonskallene i motsatt rekkefølge, på samme måte som å folde et trekkspill. Når steg 6 er nådd, vil det opprinnelige kallet til factorial(3) returnere 6.
Takk for tilbakemeldingene dine!