Forståelse av Void-Pekerne
Da du først så void, refererte det til funksjoner som ikke returnerer noe. Du kan ikke opprette en variabel av typen void, men du kan erklære en void*-peker som kan inneholde adressen til enhver datatype.
Hvis du har jobbet deg gjennom peker-oppgavene i denne seksjonen, vet du at alle pekere opptar 8 byte. En void*-peker er ikke annerledes.
En void*-peker er ikke knyttet til noen spesifikk datatype. Denne fleksibiliteten gjør at du kan lagre adressen til hvilken som helst datatype i den. Det finnes imidlertid en begrensning: du kan ikke dereferere en void*-peker.
Denne begrensningen skyldes samme grunn til at du ikke kan erklære variabler av typen void. Utfør en eksplisitt 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; }
Gratulerer med å ha fullført grunnleggende C-programmering! For å komme videre, utforsk emner som makroer, sorteringsalgoritmer og datastrukturer. Å lære en Linux-distribusjon vil også hjelpe deg å utvikle deg som en dyktig C-programmerer.
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
Awesome!
Completion rate improved to 2.63
Forståelse av Void-Pekerne
Sveip for å vise menyen
Da du først så void, refererte det til funksjoner som ikke returnerer noe. Du kan ikke opprette en variabel av typen void, men du kan erklære en void*-peker som kan inneholde adressen til enhver datatype.
Hvis du har jobbet deg gjennom peker-oppgavene i denne seksjonen, vet du at alle pekere opptar 8 byte. En void*-peker er ikke annerledes.
En void*-peker er ikke knyttet til noen spesifikk datatype. Denne fleksibiliteten gjør at du kan lagre adressen til hvilken som helst datatype i den. Det finnes imidlertid en begrensning: du kan ikke dereferere en void*-peker.
Denne begrensningen skyldes samme grunn til at du ikke kan erklære variabler av typen void. Utfør en eksplisitt 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; }
Gratulerer med å ha fullført grunnleggende C-programmering! For å komme videre, utforsk emner som makroer, sorteringsalgoritmer og datastrukturer. Å lære en Linux-distribusjon vil også hjelpe deg å utvikle deg som en dyktig C-programmerer.
Takk for tilbakemeldingene dine!