Referenser vs Pekare
Svep för att visa menyn
Referenser och pekare möjliggör indirekt åtkomst till variabelvärden, men de har vissa viktiga skillnader, samt för- och nackdelar.
Syntax
-
Pekare deklareras med symbolen
*; -
Referenser deklareras med symbolen
&.
Initiering
Du kan inte deklarera en tom referens. Men du kan deklarera en tom pekare med nullptr.
Omtilldelning
Referenser kan inte tilldelas om för att referera till ett annat 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; }
Pekare kan tilldelas om för att peka på olika minnesadresser.
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; }
Åtkomst till värdet
För att komma åt värdet som en pekare pekar på används dereferensoperatorn *. För referenser behövs ingen särskild operator; referensvariabeln används direkt.
Både pekare och referenser är avgörande för minneshantering och bidrar till programmets flexibilitet. Deras användning beror på sammanhanget.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal