Pokazivač protiv reference: razlika i usporedba

C i C++ su najčešće korišteni programski jezici budući da su to osnovna početnička vrata u svijet programiranja. Pokazivači i reference neke su od najkorisnijih mogućnosti koje ti jezici pružaju. Pokazivači se koriste u C i C++, a reference su podržane u C++, Python i drugim jezicima.

Ključni za poneti

  1. Pokazivači pohranjuju memorijske adrese varijabli ili objekata, dok reference djeluju kao aliasi za postojeće varijable.
  2. Pokazivači se mogu ponovno dodijeliti različitim memorijskim adresama, dok se reference ne mogu mijenjati nakon inicijalizacije.
  3. Pokazivači zahtijevaju eksplicitno dereferenciranje za pristup vrijednosti na koju pokazuju, dok se reference mogu koristiti izravno, poput izvorne varijable.

Pokazivač protiv reference

Pokazivač je varijabla koja prima memorijsku adresu različite varijable i može se inicijalizirati više puta u programu ovisno o tome koliko je puta potrebno. Referenca je alternativna programska varijabla i može se inicijalizirati samo jednom u cijelom programu.

Pokazivač protiv reference

Pokazivač je varijabla koja kao vrijednost ima adresu ili mjesto druge varijable. Mogu se inicijalizirati bilo gdje u programu s operatorima poput '*' i '->'. Varijabla pokazivača također se može postaviti kao null, a također podržavaju reinicijalizaciju. Osnovni tip podataka deklarira pokazivače nakon kojih slijedi zvjezdica i ime pokazivača. 

Referenca je varijabla s drugim imenom za već suptilnu programsku varijablu. Čim se stvori referentna varijabla, treba je inicijalizirati. To čini alias druge varijable. & operator se koristi za dizajn reference. Izrađeni su od osnovnog tipa podataka iza kojeg slijedi '&' i naziv varijable.

Tabela za usporedbu

Parametri usporedbePokazivačUpućivanje
DefinicijaVarijabla koja sadrži memorijsku adresu druge varijable naziva se pokazivačka varijabla.Referenca je alias za drugu varijablu, referenca na nju.
Nulta referencaPokazivaču se može dodijeliti nulta vrijednost.Referentna varijabla nema dodjelu nulte vrijednosti. 
SintaksaTip podataka *PointerName; Gdje je Datatype osnovni tip podataka, a PointerName je naziv deklariranog pokazivača.Tip podataka &ReferenceName = AnotherVariable; Gdje je ReferenceName naziv reference, a AnotherVariable je varijabla na koju se upućuje.
InicijalizacijaMoguće je kreirati neinicijalizirane pokazivače.Reference se nikada ne mogu stvoriti u neinicijaliziranom
ReinicijalizacijaPokazivačke varijable mogu se ponovno inicijalizirati u programu prema potrebi.Referentna varijabla može se inicijalizirati samo jednom u programu.

Što je Pointer?

Ukratko, pokazivač je varijabla koja sadrži memorijsku lokaciju ili adresu bilo koje druge varijable u programu. Pokazivači su funkcionalni u C i C++. Varijabla pokazivača pohranjuje lokaciju adrese pokazivačke varijable. Pokazivačke varijable se mogu deklarirati i zatim inicijalizirati s varijablom čiju adresu treba odrediti.

Također pročitajte:  Mikroservisi protiv web servisa: razlika i usporedba

Štoviše, oni su jasni jer pokazivač na cijeli broj može držati samo adresu varijable cijelog broja. Pokazivači imaju jasan način deklaracije. Na primjer, int *point je pokazivač na varijablu tipa int, a double *ABC je pokazivač na varijablu tipa podataka double. Isti koncept vrijedi i za druge vrste podataka. Dakle, pokazivač se deklarira na sljedeći način:

int *pokazivačka varijabla;

Nakon deklaracije pokazivača, varijabla pokazivača se dodjeljuje varijabli čiju adresu treba odrediti. Gornja izjava deklaracije koristi pokazivač koji će pohraniti vrijednost cjelobrojne varijable. 

varijabla pokazivača = &a;

Ovdje je a cjelobrojna varijabla koja se koristi na drugoj strani programa čija je adresa pohranjena u pokazivaču varijable. Pokazatelji također daju odgovornost da se ponovno inicijalizira. Njihove vrijednosti mogu se mijenjati prema njihovim potrebama. 

Što je Referenca?

Referentna varijabla je alias za drugu varijablu. Drugim riječima, varijabla koja se odnosi na drugu postojeću varijablu programa smatra se referentnom varijablom.

Imaju ograničenje u tome što se ne mogu dodijeliti nultoj vrijednosti i ne mogu se deklarirati, već se samo inicijaliziraju. Nakon stvaranja reference, varijabli se može pristupiti pomoću naziva reference ili njezinog izvornog naziva. Reference se izravno inicijaliziraju. Primjer, 

int &ref = var;

Ovdje je ref naziv referentne varijable i pokazuje na varijablu var, koja se inicijalizira u drugom dijelu programa. Kada su vrijednosti ref i var ispisane, uočeno je da ref i var imaju istu vrijednost. Pokazivači su korisni u uštedi memorije jer kada se prosljeđuju kao argumenti funkciji, koriste izvornu memorijsku lokaciju za svaki poziv funkcije.

Također pročitajte:  Snimanje zaslona na Macu: 4 jednostavna načina za to

Referentne varijable ne omogućuju ponovno inicijaliziranje, a samo su jednom inicijalizirane i jedinstvene. Reference ne upućuju na varijablu tako što pohranjuju njenu adresu na zasebno memorijsko mjesto. Jednostavno rečeno, referentna varijabla je alternativni naziv za postojeću varijablu. Ovo su samo aliasi u drugom nazivu varijable na koju se upućuje.

Glavne razlike između pokazivača i reference

  1. Varijabla pokazivača se referencira zaobići referencom, dok se referentna varijabla referencira zaobići po vrijednosti.
  2. Pokazivači podržavaju mogućnost pokazivanja na druge pokazivače, dok referencama nedostaje ta prednost. Referentna varijabla ne može se natjerati da ukazuje na više varijabli.
  3. Pokazivači podržavaju korištenje aritmetika operatori i djeluju kao operandi, dok referentne varijable ne mogu biti kompatibilne s aritmetičkim operacijama.
  4. Veličina i memorijska adresa varijable pokazivača nalazi se na stogu, dok referentna varijabla ima memorijsku adresu izvorne varijable, ali također zauzima malo prostora na stogu. 
  5. Pokazivači imaju prednosti deklaracije, dok se reference samo inicijaliziraju.
Reference
  1. https://link.springer.com/article/10.1023/A:1015362608943
  2. https://dl.acm.org/doi/pdf/10.1145/99583.99599

Zadnje ažuriranje: 11. lipnja 2023

točka 1
Jedan zahtjev?

Uložio sam mnogo truda u pisanje ovog posta na blogu kako bih vam pružio vrijednost. Bit će mi od velike pomoći ako razmislite o tome da to podijelite na društvenim medijima ili sa svojim prijateljima/obitelji. DIJELJENJE JE ♥️

12 misli o “Pokazivač protiv reference: razlika i usporedba”

  1. C i C++ su najčešće korišteni programski jezici budući da su to osnovna početnička vrata u svijet programiranja. Pokazivači i reference neke su od najkorisnijih mogućnosti koje ti jezici pružaju. Pokazivači se koriste u C i C++, a reference su podržane u C++, Python i drugim jezicima.

    odgovor

Ostavite komentar

Želite li spremiti ovaj članak za kasnije? Kliknite srce u donjem desnom kutu da biste ga spremili u svoj okvir za članke!