Referencer og Dereferencer
Pointere er baseret på to operatorer:
- Adresse-operatoren
&. - Dereference-operatoren
*.
Adresse-operator
Adresse-operatoren, repræsenteret ved &, gør det muligt at interagere direkte med computerens RAM. Ved at bruge & kan du få den faktiske hukommelsesadresse for et objekt.
Main.c
123456789101112#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Format-specifikatoren, der bruges til at udskrive adresser (pegepinde), er %p.
Adresser udtrykkes typisk i hexadecimal notation.
Dereference-operatoren
Omvendt giver *-operatoren dig beboerens navn, når du har deres adresse. Hvordan kan denne operator anvendes, hvis vi ikke direkte arbejder med adresser? Hvis du har et udtryk som &x, der returnerer adressen på variablen x, vil anvendelse af *-operatoren på dette (*&x) give dig værdien af variablen, der er gemt på den adresse.
Grundlæggende er *&x det samme som x.
Main.c
1234567891011121314#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Forveksl ikke dereference-operatoren (*x) med multiplikationsoperatoren (x*y).
Swipe to start coding
- Opret et heltalsarray med 5 elementer og udfyld det.
- Hent adressen på det tredje element.
- Inkrementér adressen på det tredje element og dereferér den inkrementerede adresse for at udskrive værdien, den peger på.
Løsning
Tak for dine kommentarer!
single
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
Referencer og Dereferencer
Stryg for at vise menuen
Pointere er baseret på to operatorer:
- Adresse-operatoren
&. - Dereference-operatoren
*.
Adresse-operator
Adresse-operatoren, repræsenteret ved &, gør det muligt at interagere direkte med computerens RAM. Ved at bruge & kan du få den faktiske hukommelsesadresse for et objekt.
Main.c
123456789101112#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable into RAM: %p\n", &x); // using reference operator `&` for getting address return 0; }
Format-specifikatoren, der bruges til at udskrive adresser (pegepinde), er %p.
Adresser udtrykkes typisk i hexadecimal notation.
Dereference-operatoren
Omvendt giver *-operatoren dig beboerens navn, når du har deres adresse. Hvordan kan denne operator anvendes, hvis vi ikke direkte arbejder med adresser? Hvis du har et udtryk som &x, der returnerer adressen på variablen x, vil anvendelse af *-operatoren på dette (*&x) give dig værdien af variablen, der er gemt på den adresse.
Grundlæggende er *&x det samme som x.
Main.c
1234567891011121314#include <stdio.h> int main() { int x = 100; printf("Value of variable: %d\n", x); printf("Address of variable in RAM: %p\n", &x); // using reference operator `&` printf("Dereferencing address of variable: %d", *(&x)); // using dereference operator `*` return 0; }
Forveksl ikke dereference-operatoren (*x) med multiplikationsoperatoren (x*y).
Swipe to start coding
- Opret et heltalsarray med 5 elementer og udfyld det.
- Hent adressen på det tredje element.
- Inkrementér adressen på det tredje element og dereferér den inkrementerede adresse for at udskrive værdien, den peger på.
Løsning
Tak for dine kommentarer!
single