Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Void og Rekursjon | Funksjoner
C-Grunnleggende

bookVoid 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

Main.c

copy
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

Main.c

copy
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

Main.c

copy
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.

question mark

Tenk deg en reklame der du ser en jente som holder en melkeflaske. På denne flasken er det et nytt bilde av den samme jenta som holder en melkeflaske, og på den mindre flasken er det enda et bilde av jenta, og slik fortsetter det. Hva kalles dette konseptet?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

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

bookVoid 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

Main.c

copy
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

Main.c

copy
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

Main.c

copy
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.

question mark

Tenk deg en reklame der du ser en jente som holder en melkeflaske. På denne flasken er det et nytt bilde av den samme jenta som holder en melkeflaske, og på den mindre flasken er det enda et bilde av jenta, og slik fortsetter det. Hva kalles dette konseptet?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 5. Kapittel 6
some-alt