Referenties versus Pointers
Veeg om het menu te tonen
Referenties en pointers bieden indirecte toegang tot variabele waarden, maar ze hebben enkele belangrijke verschillen, evenals voor- en nadelen.
Syntax
-
Pointers worden gedeclareerd met het
*-symbool; -
Referenties worden gedeclareerd met het
&-symbool.
Initialisatie
Je kunt geen lege referentie declareren. Maar je kunt wel een lege pointer declareren met nullptr.
Herverwijzing
Referenties kunnen niet opnieuw worden toegewezen om naar een ander object te verwijzen.
main.cpp
12345678910111213#include <iostream> int main() { int x = 125, y = 500; // creating a reference to x variable int& ref_x = x; ref_x = y; // attempt to re-assigned ref_x ref_x = 0; std::cout << x << ' ' << y; }
Pointers kunnen opnieuw worden toegewezen om naar verschillende geheugenlocaties te wijzen
main.cpp
12345678910111213#include <iostream> int main() { int x = 125, y = 500; // creating a pointer to x variable int* ptr = &x; ptr = &y; // attempt to re-assigned ref_x *ptr = 0; std::cout << x << ' ' << y; }
Toegang tot de waarde
Om toegang te krijgen tot de waarde waarnaar een pointer verwijst, gebruik je de dereference-operator *. Voor referenties is het niet nodig een speciale operator te gebruiken; je gebruikt de referentievariabele direct.
Zowel pointers als referenties zijn essentieel bij geheugenbeheer en dragen bij aan de flexibiliteit van programma's. Het gebruik ervan hangt af van de context.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.