Reference vs. Pointere
Stryg for at vise menuen
Referencer og pointers giver indirekte adgang til variabelværdier, men de har nogle væsentlige forskelle, samt fordele og ulemper.
Syntaks
-
Pointers deklareres med symbolet
*; -
Referencer deklareres med symbolet
&.
Initialisering
Du kan ikke erklære en tom reference. Men du kan erklære 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 speciel operator; referencevariablen bruges 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