Referenser och Dereferenser
Pekare är uppbyggda kring två operatorer:
- Adressoperatorn
&. - Dereferensoperatorn
*.
Adressoperator
Adressoperatorn, representerad av &, gör det möjligt att direkt interagera med datorns RAM-minne. Genom att använda & kan du erhålla det faktiska minnesadressen till ett 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-specifikatorn som används för att skriva ut adresser (pekare) är %p.
Adresser uttrycks vanligtvis i hexadecimal notation.
Dereferensoperatorn
Omvänt ger *-operatorn dig invånarens namn när du har deras adress. Hur kan vi använda denna operator om vi inte direkt arbetar med adresser? Om du har ett uttryck som &x, vilket returnerar adressen till variabeln x, ger tillämpning av *-operatorn på det (*&x) dig värdet av variabeln som lagras på den adressen.
I grund och botten är *&x detsamma 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; }
Blanda inte ihop dereferensoperatorn (*x) med multiplikationsoperatorn (x*y).
Swipe to start coding
- Skapa en heltalsarray med 5 element och fyll den med värden.
- Hämta adressen till det tredje elementet.
- Öka adressen till det tredje elementet och dereferera den ökade adressen för att skriva ut värdet den pekar på.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 2.63
Referenser och Dereferenser
Svep för att visa menyn
Pekare är uppbyggda kring två operatorer:
- Adressoperatorn
&. - Dereferensoperatorn
*.
Adressoperator
Adressoperatorn, representerad av &, gör det möjligt att direkt interagera med datorns RAM-minne. Genom att använda & kan du erhålla det faktiska minnesadressen till ett 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-specifikatorn som används för att skriva ut adresser (pekare) är %p.
Adresser uttrycks vanligtvis i hexadecimal notation.
Dereferensoperatorn
Omvänt ger *-operatorn dig invånarens namn när du har deras adress. Hur kan vi använda denna operator om vi inte direkt arbetar med adresser? Om du har ett uttryck som &x, vilket returnerar adressen till variabeln x, ger tillämpning av *-operatorn på det (*&x) dig värdet av variabeln som lagras på den adressen.
I grund och botten är *&x detsamma 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; }
Blanda inte ihop dereferensoperatorn (*x) med multiplikationsoperatorn (x*y).
Swipe to start coding
- Skapa en heltalsarray med 5 element och fyll den med värden.
- Hämta adressen till det tredje elementet.
- Öka adressen till det tredje elementet och dereferera den ökade adressen för att skriva ut värdet den pekar på.
Lösning
Tack för dina kommentarer!
single