Void och Rekursion
Returntypen void i C
I programmeringsspråket C förväntas funktioner som deklareras med en specifik returtyp ha en return-sats som levererar ett värde av den typen. Det finns dock situationer där en funktion inte behöver returnera något – till exempel om den endast visar text på skärmen. I sådana fall ska funktionen deklareras med typen void.
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
void-nyckelordet anger att en funktion inte returnerar ett värde, och det kan även användas i samband med pekare. Om man försöker deklarera en variabel av typen void uppstår ett fel eftersom kompilatorn inte kan avgöra hur mycket minne som ska allokeras.
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
Rekursion
C stöder möjligheten för en funktion att anropa sig själv, en teknik som kallas rekursion.
Föreställ dig rekursion som att sträcka ut och sedan släppa ett gummiband. Det används ofta vid matematiska operationer, såsom beräkning av fakulteter.
Fakulteter används ofta för att approximera funktionsvärden genom att utveckla dessa funktioner i Taylor- eller Maclaurinserier.
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 samband med rekursion kommer funktionen att fortsätta anropa sig själv tills villkoret n == 0 || n == 1 uppfylls. När detta villkor är uppfyllt returneras resultaten från de efterföljande anropen av funktionen factorial() i omvänd ordning, likt att vika ihop ett dragspel. När steg 6 nås kommer det ursprungliga anropet till factorial(3) att returnera 6.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 2.63
Void och Rekursion
Svep för att visa menyn
Returntypen void i C
I programmeringsspråket C förväntas funktioner som deklareras med en specifik returtyp ha en return-sats som levererar ett värde av den typen. Det finns dock situationer där en funktion inte behöver returnera något – till exempel om den endast visar text på skärmen. I sådana fall ska funktionen deklareras med typen void.
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
void-nyckelordet anger att en funktion inte returnerar ett värde, och det kan även användas i samband med pekare. Om man försöker deklarera en variabel av typen void uppstår ett fel eftersom kompilatorn inte kan avgöra hur mycket minne som ska allokeras.
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
Rekursion
C stöder möjligheten för en funktion att anropa sig själv, en teknik som kallas rekursion.
Föreställ dig rekursion som att sträcka ut och sedan släppa ett gummiband. Det används ofta vid matematiska operationer, såsom beräkning av fakulteter.
Fakulteter används ofta för att approximera funktionsvärden genom att utveckla dessa funktioner i Taylor- eller Maclaurinserier.
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 samband med rekursion kommer funktionen att fortsätta anropa sig själv tills villkoret n == 0 || n == 1 uppfylls. När detta villkor är uppfyllt returneras resultaten från de efterföljande anropen av funktionen factorial() i omvänd ordning, likt att vika ihop ett dragspel. När steg 6 nås kommer det ursprungliga anropet till factorial(3) att returnera 6.
Tack för dina kommentarer!