Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Referanser og Dereferanser | Pekere
C-Grunnleggende

bookReferanser og Dereferanser

Pekere er basert på to operatorer:

  • Adresseoperatoren &.
  • Dereferanseoperatoren *.

Adresseoperator

Adresseoperatoren, representert ved &, gjør det mulig å samhandle direkte med datamaskinens RAM. Ved å bruke & kan du hente den faktiske minneadressen til 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
Merk

Formatspesifikatoren som brukes for å skrive ut adresser (pekere) er %p.

Adresser uttrykkes vanligvis i heksadesimal notasjon.

Dereferanse-operatoren

Omvendt gir *-operatoren deg navnet på beboeren når du har adressen deres. Hvordan kan vi bruke denne operatoren hvis vi ikke direkte arbeider med adresser? Hvis du har et uttrykk som &x, som returnerer adressen til variabelen x, vil bruk av *-operatoren på dette (*&x) gi deg verdien til variabelen som er lagret på den adressen.

Note
Merk

I hovedsak 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
Merk

Ikke forveksle dereferanseoperatoren (*x) med multiplikasjonsoperatoren (x*y).

Oppgave

Swipe to start coding

  • Opprett et heltallsarray med 5 elementer og fyll det med verdier.
  • Hent adressen til det tredje elementet.
  • Øk adressen til det tredje elementet og dereferer den økte adressen for å skrive ut verdien den peker på.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 6. Kapittel 2
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain the difference between the address-of and dereference operators with an example?

Why are memory addresses usually shown in hexadecimal?

Can you show how to use these operators in a simple code snippet?

close

Awesome!

Completion rate improved to 2.63

bookReferanser og Dereferanser

Sveip for å vise menyen

Pekere er basert på to operatorer:

  • Adresseoperatoren &.
  • Dereferanseoperatoren *.

Adresseoperator

Adresseoperatoren, representert ved &, gjør det mulig å samhandle direkte med datamaskinens RAM. Ved å bruke & kan du hente den faktiske minneadressen til 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
Merk

Formatspesifikatoren som brukes for å skrive ut adresser (pekere) er %p.

Adresser uttrykkes vanligvis i heksadesimal notasjon.

Dereferanse-operatoren

Omvendt gir *-operatoren deg navnet på beboeren når du har adressen deres. Hvordan kan vi bruke denne operatoren hvis vi ikke direkte arbeider med adresser? Hvis du har et uttrykk som &x, som returnerer adressen til variabelen x, vil bruk av *-operatoren på dette (*&x) gi deg verdien til variabelen som er lagret på den adressen.

Note
Merk

I hovedsak 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
Merk

Ikke forveksle dereferanseoperatoren (*x) med multiplikasjonsoperatoren (x*y).

Oppgave

Swipe to start coding

  • Opprett et heltallsarray med 5 elementer og fyll det med verdier.
  • Hent adressen til det tredje elementet.
  • Øk adressen til det tredje elementet og dereferer den økte adressen for å skrive ut verdien den peker på.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 6. Kapittel 2
single

single

some-alt