Forståelse af Void-Pegepinde
Da du først stødte på void, henviste det til funktioner, der ikke returnerer noget. Du kan ikke oprette en variabel af typen void, men du kan erklære en void*-pointer, der kan indeholde adressen til enhver datatype.
Hvis du har arbejdet med pointer-øvelserne i afsnittet, ved du, at alle pointers optager 8 bytes. En void*-pointer er ingen undtagelse.
En void*-pointer er ikke knyttet til nogen specifik datatype. Denne fleksibilitet gør det muligt at gemme adressen til enhver datatype i den. Der er dog en begrænsning: du kan ikke dereferere en void*-pointer.
Denne begrænsning skyldes samme årsag til, at du ikke kan erklære variabler af typen void. Udfør en eksplicit typekonvertering!
Main.c
1234567891011121314151617181920#include <stdio.h> int main() { char c = 'F'; int i = 100; double d = 3.15; void* pV; pV = &c; printf("%c \n", *((char*)pV)); pV = &i; printf("%d \n", *((int*)pV)); pV = &d; printf("%.2f \n", *((double*)pV)); return 0; }
Tillykke med at have gennemført grundlæggende C-programmering! For at komme videre, udforsk emner som makroer, sorteringsalgoritmer og datastrukturer. At lære en Linux-distribution vil også hjælpe dig med at udvikle dig som en dygtig C-programmør.
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
Awesome!
Completion rate improved to 2.63
Forståelse af Void-Pegepinde
Stryg for at vise menuen
Da du først stødte på void, henviste det til funktioner, der ikke returnerer noget. Du kan ikke oprette en variabel af typen void, men du kan erklære en void*-pointer, der kan indeholde adressen til enhver datatype.
Hvis du har arbejdet med pointer-øvelserne i afsnittet, ved du, at alle pointers optager 8 bytes. En void*-pointer er ingen undtagelse.
En void*-pointer er ikke knyttet til nogen specifik datatype. Denne fleksibilitet gør det muligt at gemme adressen til enhver datatype i den. Der er dog en begrænsning: du kan ikke dereferere en void*-pointer.
Denne begrænsning skyldes samme årsag til, at du ikke kan erklære variabler af typen void. Udfør en eksplicit typekonvertering!
Main.c
1234567891011121314151617181920#include <stdio.h> int main() { char c = 'F'; int i = 100; double d = 3.15; void* pV; pV = &c; printf("%c \n", *((char*)pV)); pV = &i; printf("%d \n", *((int*)pV)); pV = &d; printf("%.2f \n", *((double*)pV)); return 0; }
Tillykke med at have gennemført grundlæggende C-programmering! For at komme videre, udforsk emner som makroer, sorteringsalgoritmer og datastrukturer. At lære en Linux-distribution vil også hjælpe dig med at udvikle dig som en dygtig C-programmør.
Tak for dine kommentarer!