Preporučeno, 2022

Izbor Urednika

Razlika između pokazivača i reference

"Pokazivač" i "referenca" koriste se za ukazivanje ili upućivanje na drugu varijablu. No, osnovna razlika među njima je ta da pokazivač varijable ukazuje na varijablu čija je memorijska lokacija pohranjena u njemu. Referentna varijabla je alias za varijablu koja mu je dodijeljena. Donja usporedna tablica istražuje ostale razlike između pokazivača i reference.

Tablica usporedbe

Osnova za usporedbuPokazivačupućivanje
Osnovni, temeljniPokazivač je memorijska adresa varijable.Referenca je alias za varijablu.
vraćaPokazivač varijable vraća vrijednost smještenu na adresi pohranjenoj u pokazivačkoj varijabli kojoj prethodi znak pokazivača '*'.Referentna varijabla vraća adresu varijable kojoj prethodi referentni znak '&'.
operatori*, ->&
Null ReferencePokazivač varijable može se odnositi na NULL.Referentna varijabla se nikada ne može odnositi na NULL.
InicijalizacijaMože se izraditi neinicijalizirani pokazivač.Neinicijalizirana referenca se nikada ne može izraditi.
Vrijeme inicijalizacijePokazivač varijable može se inicijalizirati u bilo kojem trenutku u programu.Referentna varijabla može se inicijalizirati samo u vrijeme njezina stvaranja.
ReinitializationPokazivač varijable može se ponovno inicijalizirati onoliko puta koliko je potrebno.Referentna varijabla se nikada ne može ponovno inicijalizirati u programu.

Definicija pointera

"Pokazivač" je varijabla koja sadrži mjesto memorije druge varijable. Operatori koje koristi varijabla pokazivača su * i ->. Deklaracija varijable pokazivača sadrži osnovni podatkovni tip koji slijedi znak '*' i ime varijable.

 upišite * var_name; 

Razumijemo pokazivač uz pomoć primjera.

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

Ovdje imamo cjelobrojnu varijablu a i varijablu pokazivača ptr koja pohranjuje adresu varijable a.

Pokazivač aritmetike

Pokazivačkom varijablom se može upravljati s dva aritmetička operatora koji su "zbrajanje" i "oduzimanje". Dodatak se naziva "prirastom", a oduzimanje se naziva "smanjenje". Kako se varijabla pokazivača povećava, ona pokazuje na mjesto memorije sljedeće varijable osnovnog tipa. Kako se varijabla pokazivača smanjuje, ona pokazuje na mjesto memorije prethodne varijable osnovnog tipa. Dakle, nizu se može učinkovito pristupiti pomoću varijable pokazivača.

Višestruko usmjeravanje

Pokazivač pokazuje na drugu varijablu pokazivača koja pokazuje na ciljnu vrijednost. Ova vrsta pokazivača uvijek je inicijalizirana s adresom druge varijable pokazivača. Deklaracija pokazivača na pokazivač slijedi.

 upišite ** var_name; 

Proučimo ga s primjerom.

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

Pokazivač funkcije

Kao što znamo da funkcija nije varijabla, ipak ima memorijsko mjesto, koje se može dodijeliti varijabli pokazivača. Jednom kada pokazivač pokaže na funkciju, funkcija se može pozvati s tim pokazivačem funkcije.

Važno je zapamtiti o pokazivaču.

  • Pokazivač varijable se može kreirati bez njegove inicijalizacije i može se inicijalizirati bilo gdje u programu.
  • Pokazivač varijable može se ponovno inicijalizirati u drugu varijablu.
  • Pokazivač varijable može se odnositi na NULL.

Definicija reference

Referentna varijabla se koristi da se odnosi na varijablu koja je dodijeljena toj referentnoj varijabli. Operator koji koristi referentna varijabla je "&". Deklaracija referentne varijable sadrži vrstu baze koju slijedi znak '&', a zatim naziv varijable.

 upišite & refer_var_name = var_ ime; 

Ovdje je tip tipa podataka, a operator potvrđuje da je referentna varijabla. Reference_var_name je ime referentne varijable. Var_name je ime varijable, koju želimo referenciranu varijablu uputiti.

Razumimo referentnu varijablu uz pomoć primjera.

 int a = 4; int & b = a; b se odnosi na ab = 6; // sada a = 6 

Ovdje je varijabli tipa int dodijeljena vrijednost 4. Referentnoj varijabli dodijeljena je varijabla a, tj. B je alias a. Sada, kada dodijelimo drugu vrijednost b, modificiramo vrijednost a. Stoga se može reći da će se promjene učinjene u referentnoj varijabli također pojaviti u varijabli koju upućuje ta referentna varijabla.

Najvažnija stvar je da referentna varijabla mora biti inicijalizirana u vrijeme njezina stvaranja. Kad se referentna varijabla inicijalizira s varijablom, ne može se ponovno inicijalizirati da bi se uputila na drugu varijablu. U trenutku kada dodijelite vrijednost referentnoj varijabli, tu vrijednost dodijelite varijabli na koju upućuje referentna varijabla. Referentna varijabla se nikada ne može odnositi na NULL. Aritmetika se ne može izvesti na referentnoj varijabli.

Referentna varijabla može se koristiti na tri načina:

  • Kao povratna vrijednost funkcije.
  • Kao parametar funkcije.
  • Kao samostalna referenca.

Ključne razlike između pokazivača i reference

  1. Referenca je poput stvaranja drugog naziva koji se odnosi na varijablu tako da se može povezati s različitim imenima. S druge strane, pokazivač je jednostavno memorijska adresa varijable.
  2. Pokazivač varijable ako prethodi "*" vraća vrijednost varijable čija je adresa pohranjena u pokazivaču moguće. Referentna varijabla kojoj prethodi '&' vraća adresu te varijable.
  3. Operatori pokazivača su * i -> dok je referentni operator &.
  4. Pokazivač varijabla ako ne nosi adresu bilo koje varijable koja pokazuje na null. S druge strane, referentna varijabla se nikada ne može odnositi na Null.
  5. Uvijek možete kreirati unitialized varijablu pokazivača, ali mi stvaramo referencu kada trebamo pseudonim neke varijable tako da nikada ne možete stvoriti unitialize refernce.
  6. Pokazivač možete ponovno inicijalizirati, ali kada inicijalizirate arefernce ne možete ga ponovno inicijalizirati.
  7. Možete stvoriti prazan pokazivač i inicijalizirati ga u bilo kojem trenutku, ali morate inicijalizirati refrence samo kada stvorite refernce.

Bilješka:

Java ne podržava pokazivače.

Zaključak

I pokazivač i referenca se koriste za ukazivanje ili upućivanje druge varijable. No, oba se razlikuju u svojoj upotrebi i primjeni.

Top