Referanser vs pekere i C ++

Referanser vs pekere i C ++

I C ++ er det to måter å få tilgang til eller administrere minneplasser. Den første er ved å bruke Referanser og det andre ved å bruke pekere. Både Referanser og pekere Tillat oss å unngå duplisering av data, forhindre unødvendig minnetildeling eller forhandlinger, og oppnå bedre ytelse. Men måten de gjør det er annerledes. Både henvisning og peker er viktige funksjoner som brukes mye for å få tilgang til og manipulere data. I motsetning til deres tilsynelatende likheter, har hver og en særegne attributter som gjør dem å foretrekke under forskjellige omstendigheter.

Denne artikkelen presenterer en sammenligning mellom Referanser og pekere i c++.

Referanse i c++

EN henvisning I C ++ er et alias eller et alternativt navn på en eksisterende variabel. En gang etablert, henvisning blir behandlet som om det var den samme variabelen, og enhver endring gjort i henvisning påvirker også den tilsvarende variabelen. Referanser kan ikke peke på null, og verdien deres kan ikke endres etter initialisering.

#inkludere
ved hjelp av navneområdet STD;
int main ()
int i = 7;
int & r = i;
cout << "Value of i : " << i << endl;
cout << "Value of i reference : " << r << endl;
retur 0;


I koden ovenfor initialiserer vi et heltall I med verdi 7, og dets heltall henvisning er opprettet og trykt ved hjelp av cout -setningen.

Produksjon

Pekere i ca++

Pekere, På den annen side er variabler som lagrer minneadressen til en annen variabel. De gir indirekte tilgang til minnested. I motsetning til Referanser, pekere kan være null og kan peke på forskjellige steder basert på deres verdi.

#inkludere
ved hjelp av navneområdet STD;
int main ()
int var = 5;
int *ip;
IP = &var;
cout << "Value of var variable: ";
cout << var << endl;
cout << "Address stored in ip variable: ";
cout << ip << endl;
cout << "Value of *ip variable: ";
cout << *ip << endl;
retur 0;


I koden ovenfor initialiserer vi en int var med verdi 5, og a peker er opprettet og peker på variabelen var. Verdien, adressen og verdien av peker skrives deretter ut på skjermen.

Produksjon

Referanser vs. Pekere i ca++

Følgende er forskjellene mellom Referanser og pekere i c++.

1: Syntaks

Referanser Gi renere syntaks, eliminerer behovet for en duereferanseoperatør (for eksempel * eller ->). I tillegg, fordi de garantert er ikke-null, reduserer de risikoen for segmenteringsfeil, en vanlig feil som oppstår når du prøver å få tilgang til et ugyldig minneplass gjennom en null peker.

2: allsidighet

Pekere er mer allsidige og fleksible enn Referanser. De brukes mye i E.g., dynamisk minnetildeling eller minnemanipulasjonsoppgaver, for eksempel peker aritmetikk. Pekere er også nødvendige når du lager komplekse datastrukturer som koblede lister, trær eller grafer, der en node må peke på en annen node.

3: Fleksibilitet

I motsetning til Referanser, pekere kan tilordnes for å peke på et annet objekt eller til og med å bli satt til null. Denne fleksibiliteten gir mulighet for dynamisk tildeling av minne, som ofte er nødvendig i komplekse programmer. Pekere kan også brukes til å spore minnebruk, implementere datastrukturer og passere verdier innen henvisning, blant annet.

4: Funksjoner

En annen avgjørende forskjell er måten Referanser og pekere sendes til funksjoner. Går forbi henvisning gjør det mulig for funksjonen å endre den opprinnelige variabelen direkte uten å lage en ny kopi av variabelen. Derimot, forbi en peker Oppretter en ny kopi av peker, ikke den opprinnelige variabelen, og potensielt øke minnebruken av programmet. På den annen side går forbi peker gir muligheten til å endre peker, Noe som er umulig når du går forbi henvisning.

5: Sikkerhet

Referanser blir ofte sett på som det tryggere alternativet på grunn av deres begrensninger. De tillater ikke minnelekkasjer eller dinglende pekere, noe som kan være vanlige problemer når du bruker pekere. I noen tilfeller er imidlertid pekere nødvendige, ettersom de tillater mer fleksibilitet.

Konklusjon

Både Referanser og pekere har unike funksjoner som gjør dem å foretrekke under visse omstendigheter. Referanser er nyttige for enkle datamanipulasjoner og tilbyr renere syntaks, mens pekere er mer allsidige og nødvendige for dynamisk minnetildeling, minnemanipulering og kompleks datastrukturoppretting. Å forstå passende bruk og begrensninger i hvert skjema er avgjørende for å utvikle robust og effektiv kode.