Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Referenser och Dereferenser | Pekare
C-Grunder

bookReferenser 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

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
Observera

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.

Note
Not

I grund och botten är *&x detsamma 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
Not

Blanda inte ihop dereferensoperatorn (*x) med multiplikationsoperatorn (x*y).

Uppgift

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

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 6. Kapitel 2
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 2.63

bookReferenser 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

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
Observera

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.

Note
Not

I grund och botten är *&x detsamma 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
Not

Blanda inte ihop dereferensoperatorn (*x) med multiplikationsoperatorn (x*y).

Uppgift

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

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 6. Kapitel 2
single

single

some-alt