Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Referenties en Dereferenties | Pointers
C-Basis

bookReferenties en Dereferenties

Pointers zijn gebaseerd op twee operatoren:

  • De adres-operator &.
  • De dereference-operator *.

Adres-operator

De adres-operator, weergegeven door &, stelt ons in staat direct te werken met het RAM-geheugen van de computer. Met & verkrijg je het werkelijke geheugenadres van een object.

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
Opmerking

De formaat-specificatie die wordt gebruikt om adressen (pointers) af te drukken is %p.

Adressen worden doorgaans weergegeven in hexadecimale notatie.

Dereference-operator

Omgekeerd geeft de *-operator de naam van de bewoner wanneer het adres wordt opgegeven. Hoe kunnen we deze operator gebruiken als we niet direct met adressen werken? Als je een expressie zoals &x hebt, die het adres van de variabele x retourneert, geeft het toepassen van de *-operator daarop (*&x) de waarde van de variabele die op dat adres is opgeslagen.

Note
Opmerking

In wezen is *&x hetzelfde als 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
Opmerking

Verwar de dereference-operator (*x) niet met de vermenigvuldigingsoperator (x*y).

Taak

Swipe to start coding

  • Maak een integerarray met 5 elementen en vul deze.
  • Haal het adres op van het derde element.
  • Verhoog het adres van het derde element en dereferenceer het verhoogde adres om de waarde af te drukken waarnaar het wijst.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 2
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

close

Awesome!

Completion rate improved to 2.63

bookReferenties en Dereferenties

Veeg om het menu te tonen

Pointers zijn gebaseerd op twee operatoren:

  • De adres-operator &.
  • De dereference-operator *.

Adres-operator

De adres-operator, weergegeven door &, stelt ons in staat direct te werken met het RAM-geheugen van de computer. Met & verkrijg je het werkelijke geheugenadres van een object.

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
Opmerking

De formaat-specificatie die wordt gebruikt om adressen (pointers) af te drukken is %p.

Adressen worden doorgaans weergegeven in hexadecimale notatie.

Dereference-operator

Omgekeerd geeft de *-operator de naam van de bewoner wanneer het adres wordt opgegeven. Hoe kunnen we deze operator gebruiken als we niet direct met adressen werken? Als je een expressie zoals &x hebt, die het adres van de variabele x retourneert, geeft het toepassen van de *-operator daarop (*&x) de waarde van de variabele die op dat adres is opgeslagen.

Note
Opmerking

In wezen is *&x hetzelfde als 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
Opmerking

Verwar de dereference-operator (*x) niet met de vermenigvuldigingsoperator (x*y).

Taak

Swipe to start coding

  • Maak een integerarray met 5 elementen en vul deze.
  • Haal het adres op van het derde element.
  • Verhoog het adres van het derde element en dereferenceer het verhoogde adres om de waarde af te drukken waarnaar het wijst.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 6. Hoofdstuk 2
single

single

some-alt