Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Referencer og Dereferencer | Pointere
C-Grundlæggende
Sektion 6. Kapitel 2
single

single

bookReferencer 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

Main.c

copy
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; }
Note
Bemærk

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.

Note
Bemærk

Grundlæggende er *&x det samme som x.

Main.c

Main.c

copy
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; }
Note
Bemærk

Forveksl ikke dereference-operatoren (*x) med multiplikationsoperatoren (x*y).

Opgave

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

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 6. Kapitel 2
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

some-alt