Referanser 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
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; }
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.
I hovedsak 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; }
Ikke forveksle dereferanseoperatoren (*x) med multiplikasjonsoperatoren (x*y).
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
Takk for tilbakemeldingene dine!
single
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
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?
Awesome!
Completion rate improved to 2.63
Referanser 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
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; }
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.
I hovedsak 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; }
Ikke forveksle dereferanseoperatoren (*x) med multiplikasjonsoperatoren (x*y).
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
Takk for tilbakemeldingene dine!
single