Recomandat, 2024

Alegerea Editorului

Diferența dintre indicatorul și referința

"Pointerul" și "referința" ambele sunt folosite pentru a indica sau a indica o altă variabilă. Dar, diferența de bază între amândouă este că o variabilă a indicelui indică o variabilă a cărei locație de memorie este stocată în ea. Variabila de referință este un pseudonim pentru o variabilă care îi este atribuită. Schema de comparație de mai jos explorează celelalte diferențe dintre un indicator și o referință.

Diagramă de comparație

Bazele de comparatieac indicatorReferinţă
De bazăPointerul este adresa de memorie a unei variabile.Referința este un alias pentru o variabilă.
Se intoarceVariabila pointer returnează valoarea localizată la adresa stocată în variabila indicator, care este precedată de semnul indicatorului "*".Variabila de referință returnează adresa variabilei precedată de semnul de referință "&".
operatorii*, ->&
Null ReferenceVariabila pointer se poate referi la NULL.Variabila de referință nu se poate referi niciodată la NULL.
InițializareaSe poate crea un pointer neinitializat.O referință neinitializată nu poate fi creată niciodată.
Ora de inițiereVariabila indicator poate fi inițializată în orice moment din program.Variabila de referință poate fi inițializată numai în momentul creării ei.
reîncepereaVariabila pointer poate fi reinitializată de câte ori este necesar.Variabila de referință nu poate fi reinitializată din nou în program.

Definiția Pointer

Un "pointer" este o variabilă care deține locația de memorie a altei variabile. Operatorii utilizați de variabila indicator sunt * și ->. Declarația variabilei pointer conține tipul de bază de date urmat de semnul "*" și numele variabilei.

 tip * var_name; 

Să înțelegem indicatorul cu ajutorul unui exemplu.

 int a = 4; int * ptr = & a; cout < 

Aici avem o variabilă întregă a și o variabilă pointer ptr care stochează adresa variabilei a.

Pointer Aritmetic

Variabila pointer poate fi operată cu doi operatori aritmetici care sunt "adiționali" și "scădere". Adunarea este denumită "increment", iar scăderea este denumită "decrement". Întrucât variabila indicator este incrementată, ea indică locația de memorie a următoarei variabile a tipului de bază. Deoarece o variabilă a indicatorului este decrementată, ea indică locația de memorie a variabilei anterioare a tipului de bază. Prin urmare, o matrice poate fi accesată eficient printr-o variabilă a indicatorului.

Indirectă multiplă

Un pointer indică cealaltă variabilă indicatorul care indică valoarea țintă. Acest tip de pointer este întotdeauna inițializat cu adresa unei alte variabile de pointer. Declarația unui pointer la un pointer este după cum urmează.

 tip ** var_name; 

Să o studiem cu un exemplu.

 int a = 4; int * ptr1 = & a; int ** ptr2 = & ptr1; cout < 

Indicator de funcționare

După cum știm că o funcție nu este o variabilă, ea are încă o locație de memorie, care poate fi atribuită unei variabile de pointer. Odată ce un indicator indică o funcție, atunci funcția poate fi apelată cu acel indicator al funcției.

Punctele importante pe care trebuie să le țineți minte despre indicatorul.

  • Variabila pointer poate fi creată fără inițializare și poate fi inițializată oriunde în program.
  • Variabila pointer poate fi reinitializată la o altă variabilă.
  • Variabila pointer se poate referi la NULL.

Definiția Referință

Variabila de referință este folosită pentru a se referi la variabila care este atribuită acelei variabile de referință. Operatorul utilizat de variabila de referință este '&'. Declarația unei variabile de referință conține tipul de bază urmat de semnul "&" și apoi numele variabilei.

 tip & refer_var_name = var_ nume; 

Aici, tipul este tipul de date, operatorul & confirmă că este o variabilă de referință. Refer_var_name este numele variabilei de referință. Numele var_name este numele variabilei, pe care dorim ca variabila de referință să o menționeze.

Să înțelegem variabila de referință cu ajutorul unui exemplu.

 int a = 4; int & b = a; // b se referă la ab = 6; // acum a = 6 

Aici, variabila de tip int este atribuită o valoare 4. Variabila de referință este atribuită variabilei a, adică b este alias de a. Acum, când atribuim o altă valoare b, modificăm valoarea a. Prin urmare, se poate spune că modificările aduse unei variabile de referință vor apărea și în variabila menționată de acea variabilă de referință.

Cel mai important punct este acela că variabila de referință trebuie inițializată la momentul creării acesteia. Odată ce variabila de referință este inițializată cu o variabilă, ea nu poate fi reinitializată pentru a se referi la o altă variabilă. În momentul în care atribuiți o valoare unei variabile de referință, atribuiți acea valoare unei variabile la care o variabilă de referință indică. Variabila de referință nu se poate referi niciodată la NULL. Aritmetica nu poate fi efectuată pe o variabilă de referință.

Variabila de referință poate fi utilizată în trei moduri:

  • Ca valoare retur functie.
  • Ca parametru de funcție.
  • Ca referință independentă.

Diferențe cheie între indicatorul și referința

  1. Referința este ca crearea unui alt nume pentru a trimite o variabilă, astfel încât să poată fi menționată cu nume diferite. Pe de altă parte, un indicator este pur și simplu o adresă de memorie a unei variabile.
  2. O variabilă a indicelui, dacă precedă cu '*' returnează valoarea unei variabile a cărei adresă este stocată în pointer varaible. O variabilă de referință, precedată de '&', returnează adresa acelei variabile.
  3. Operatorii indicatori sunt * și -> în timp ce operatorul de referință este &.
  4. O variabilă pointer dacă nu poartă nici o adresă a variabilei indică nul. Pe de altă parte, o variabilă de referință nu se poate referi niciodată la Null.
  5. Puteți crea întotdeauna o variabilă de pointer unitializat, dar vom crea o referință când avem nevoie de un alias al unei anumite variabile, astfel încât să nu puteți crea niciodată o referință unitializată.
  6. Puteți reinițializa un pointer, dar odată ce ați inițializat, nu îl puteți reinitializa din nou.
  7. Puteți să creați un pointer gol și să îl inițializați oricând, dar trebuie să inițiați refrence numai când creați o referință.

Notă:

Java nu acceptă indicii.

Concluzie

Indicatorul și referința ambele sunt folosite pentru a indica sau a indica o altă variabilă. Dar ambele diferă în ceea ce privește utilizarea și implementarea lor.

Top