Reference vs Pointers
Stryg for at vise menuen
Referencer og pointere giver indirekte adgang til variabelværdier, men de har nogle væsentlige forskelle, samt fordele og ulemper.
Syntaks
-
Pointere deklareres ved hjælp af symbolet
*; -
Referencer deklareres ved hjælp af symbolet
&.
Initialisering
Det er ikke muligt at deklarere en tom reference. Men det er muligt at deklarere en tom pointer med nullptr.
Omtildeling
Referencer kan ikke omtildeles til at referere til et andet objekt.
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; }
Pointere kan omtildeles til at pege på forskellige hukommelsesadresser.
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; }
Adgang til værdien
For at få adgang til værdien, som en pointer peger på, bruges dereference-operatoren *. For referencer er det ikke nødvendigt at bruge en særlig operator; referencevariablen anvendes direkte.
Både pointers og referencer er afgørende for hukommelsesstyring og bidrager til programmets fleksibilitet. Brugen afhænger af konteksten.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat