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

bookReferencer 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

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

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

close

Awesome!

Completion rate improved to 2.63

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

some-alt