Razlika između referentne vrijednosti C ++ i pointera

Iako se čini da je C ++ pokazivač sličan, postoji značajna razlika između C ++ reference i pointera. Referentna varijabla može se reći kao drugo ime postojeće varijable. Jednom kada se ova varijabla inicijalizira, naziv varijable može se koristiti za upućivanje na drugu varijablu. Pokazivači su, s druge strane, varijable koje pohranjuju adresu varijable. Kao i svaka varijabla, one se prvo deklariraju, a zatim se u njih može pohraniti adresa bilo koje varijable. Neka nas detaljno pogleda razlike između C ++ Reference i Pointer kao u nastavku.

Usporedba između glave C ++ i vs Pointera (Infographics)

Ispod je top 7 razlike između C ++ Reference i Pointera

Ključne razlike između C ++ Reference i Pointer-a

Oba C ++ Reference vs Pointer popularni su izbor na tržištu; razgovarajmo o nekim glavnim razlikama između referencije C ++ i pointera:

Glavna razlika između C ++ Reference i Pointer-a je u tome što se jedna odnosi na drugu varijablu, dok ona pohranjuje adresu varijable. Upućivanja ne mijenjaju izvornu varijablu, dok ako se promijeni pokazivač, to utječe na izvornu varijablu. Na deklaraciji se mora inicijalizirati referenca dok nije potrebno inicijalizirati pokazivač nakon što je deklarirana. Polje pokazivača može se stvoriti dok se niz referenci ne može stvoriti. Nulta vrijednost ne može se dodijeliti referenci, ali može se dodijeliti pokazivaču.

C ++ Referenca u odnosu na tablicu za usporedbu pokazivača

Primarna usporedba između referentne vrijednosti C i+ odnosi se na dolje:

Osnova usporedbe između referentne vrijednosti C ++ i pointeraC ++ ReferencePokazivač
VarijableUpućivanje se može reći kao alias na postojeću varijablu. Glavna upotreba ove varijable je rad kao parametar koji djeluje kao prolazna referenca. Ovo je preneseno na funkciju. Funkcija kojoj se ovo prenosi djeluje na izvornoj varijabli umjesto na kopiji u prolaznoj vrijednosti. Promjene izvršene unutar funkcije odražavat će se i izvana.Promjenjive točke su varijable koje pohranjuju adresu. Za razliku od uobičajenih varijabli koje imamo poput int, double i char, ona pohranjuje memorijske adrese. Radi lakšeg programiranja javlja se potreba za ovom varijablom. To je varijabla koja može pohraniti vrijednost određene vrste.
DeklaracijaIzjava referentne varijable C ++ vrši se dodavanjem simbola '&' ispred varijable. Kad se koristi izrazom, znači da radi kao adresa operatera. Koristi se za pružanje drugog imena postojećoj varijabli.
Sintaksa:
upišite & newName = postojećeName ;
// ili
upišite & newName = postojećeName ;
// ili
upišite & newName = postojećeName ;
Na primjer:
/ * Referentna testna deklaracija i inicijalizacija * /
#include
pomoću namespace std;
int main () (
string string = „Priya“; // Proglasite varijablu niza nazvanom ime
string & refName = ime; // Proglasiti referencu (alias) na naziv varijable
// I refName i ime odnose se na istu vrijednost "Priya"
cout << ime << endl; // Ispisuje vrijednost varijable "Priya"
cout << refName << endl; // Ispisuje referentnu vrijednost „Priya“
Sada promijenite vrijednost Name
refName = "Karishma"; // Ponovno dodijelite novu vrijednost refNameu
cout << refName << endl;
cout << ime << endl; // Vrijednost broja također se mijenja "Karishma"
name = "Snehal"; // Ponovno dodijelite novu vrijednost imenu
cout << namer << endl;
cout << refName << endl; // Vrijednost refName također mijenja "Snehal"
)
To znači da se vrijednosti referentne varijable mogu promijeniti u izvorniku i kopiji varijable.
Prije upotrebe pokazivača bilo gdje u programu, to treba prethodno najaviti. Za deklariranje pointera i obavijestiti sustav da je pokazivač varijabla je prefiksirana s '*'. Pokazivač je popraćen tipom podataka koji može biti int ili dvostruki itd.
Sintaksa:
upišite * pntr ; // Proglasite varijablu pointera pod nazivom pntr kao pointer tipa
// ili
upišite * pntr ;
// ili
upišite * pntr ;
Na primjer:
int * newPtr; // Proglasite varijablu pointera zvanu newPtr koja upućuje na int (int pointer)
Ovaj će pokazivač zadržati adresu. Ta adresa sadrži int vrijednost.
dvostruko * newdPtr; // Proglasite dvostrukim pokazivačem
* Pokazuje da se pokazivač deklarira i da ne djeluje kao operator.
ponovno raspoređivanjeReferentnu varijablu nije moguće ponovno dodijeliti.
Primjer:
int x = 5;
int y = 6;
int & r = x;
Pokazivač može biti dodijeljen i ovo svojstvo je korisno kada programer implementira strukture podataka poput povezanih lista, stabala itd.
Primjer:
int x = 5;
int y = 6;
int * p;
p = & x;
p = & y;
Memorijska adresaReferentna varijabla ima istu adresu kao izvorna varijabla. Te se reference mogu proslijediti različitim funkcijama, mogu se pohraniti u različite klase itd. Referenca nikada ne ukazuje na novu varijablu dok se stara ne izbriše ili ne izađe izvan dosega.Pokazivač ima svoju memorijsku adresu i sprema ga u stog. Pokazivač je neovisna varijabla i može sebi dodijeliti nove vrijednosti.
Nulta vrijednostReferenci ne može biti dodijeljena nultu vrijednost.Pokazivač može imati izravno dodijeljenu nulu.
argumentiReferentna varijabla može se navesti zaobilazno prema vrijednosti. Ovdje se argumenti vrijednosti prenose funkcijama. Napravljen je klon i poslan je funkciji koja ga koristi. Promjene u kopiji ne utječu na izvornu varijablu.Kad želimo promijeniti izvornu kopiju, to se može učiniti unošenjem pokazivača objekta u funkciju. To je poznato kao referenca.
Kada koristitiReference posredno pristupaju varijabli. Razmotrimo slijedeći primjer:
enum dan
(
Nedjelja ponedjeljak, …
);
Ako definiramo varijablu
dan x;
I želimo preopteretiti operatera na izjavu, a zatim možemo napisati kao u nastavku:
dan i operater ++ (dan i dan)
(
d = (dan) (d + 1);
vratiti d;
)
Ukratko, ovo se može koristiti u funkcijskim parametrima i referentnim vrstama.
Upotreba pokazivača nije bez prethodne deklaracije.
dan * operator ++ (dan * d);
To se može koristiti za implementaciju struktura podataka i aritmetičkih operacija pointera.

Zaključak - C ++ Reference vs Pointer

Na C ++ Reference i Pointeru je teško raditi, ali uveliko poboljšavaju učinkovitost programa. Obojica C ++ Reference vs Pointer imaju svoje vlastite svrhe i služe svojim potrebama. Možete koristiti pokazivače kada želite implementirati strukture podataka i algoritme, dok reference kada želite koristiti funkcije i parametre s povratnim vrstama.

Preporučeni članak

Ovo je vodič za najveće razlike između C ++ Reference i Pointer-a. Ovdje također raspravljamo o ključnim razlikama C ++ vs Pointeru s infografikama i tablici usporedbe. Možete također pogledati sljedeće članke da biste saznali više -

  1. Python vs C ++ razlike
  2. Izvedba C u odnosu na C ++ - najbolje razlike
  3. MongoDB vs Cassandra
  4. Mobx vs Redux
  5. C ++ Vector vs Niz: Najbolje razlike
  6. MongoDB vs DynamoDB: Funkcije
  7. MongoDB vs SQL: Koje su funkcije
  8. C vs C #: Funkcije

Kategorija: