Forskellen mellem pointer og reference

Nøgleforskel - Pointer vs Reference
 

Før vi diskuterer forskellen mellem peger og reference, lad os først se på betydningen af ​​disse to udtryk kort. I et program optager data hukommelse. Den nøjagtige placering af hukommelse, som dataene blev placeret på på et eksekveringstidspunkt, skal være kendt for at få adgang til dem. Markørvariabler og referencevariabler bruges til at få adgang til disse data og manipulere de hukommelsesadresser, de er på. Det vil sige, at både pegere og referencer kan bruges til at henvise til objekter indirekte. De har i det væsentlige hukommelsesadresser som deres værdier. Det vigtigste forskel mellem en markør og en reference er det en markør er en variabel, der gemmer adressen på hukommelsesplacering for en anden variabel mens a reference er en variabel, der henviser til en anden variabel. De to mekanismer, det pointer og reference, har forskellige syntaks og brug.

Hvad er en pointer?

En markør er et programmeringssprogobjekt, der gemmer hukommelsesadressen for en værdi i computerhukommelsen.

I C ++ syntaks;

int i = 5;

int * ptr = & i;

Den første linje definerer en variabel, der er initialiseret med en værdi af 5. Den anden linje definerer en markør til variabelens hukommelsesadresse. Her erklæres 'ptr' som et objekt af typen 'pointer to int', hvis oprindelige værdi er adressen på objektet i. I det væsentlige ptr-variabel peger på i ved at gemme dens hukommelsesadresse.

At få den værdi, der er gemt på et hukommelsessted, kaldes dereferere. Operatøren * bruges til at fjerne markøren. Når erklæringerne er afsluttet, refererer det indirekte udtryk * ptr dereferences ptr til i.

For at ændre værdien på i kan følgende tildeling bruges;

* ptr = 20;

Pegere kan tildeles igen for at henvise til forskellige objekter også.

EN null markør er en speciel type markør. En nulpinder markeres ofte med 0 eller nul og peger på intet. Det er god praksis at bruge en nulpinder, hvis du ikke har en nøjagtig adresse, der skal tildeles markøren. Denne opgave kan bruges i logiske operationer og betingelser.

Henvisninger kan være bruges til at gemme og administrere adresserne i dynamisk allokeret hukommelse. Implementering og kontrol af datastrukturer såsom stabler, køer og lister kan effektiviseres ved hjælp af pegere. For eksempel kan en kø have to pointere; hovedviseren og halemarkøren. Pegere kan også bruges til at videregive variabler efter deres adresse, hvilket gør det muligt at ændre værdien. Direkte manipulering af hukommelse eller hukommelseskortede enheder kan også håndteres ved hjælp af pegere.

Pegere giver både beskyttet og ubeskyttet adgang til adresseret hukommelse. Derfor skal der træffes nødvendige forholdsregler for at kontrollere, at indholdet af en markør er gyldigt. Ellers kan du afbryde en markør med en ugyldig hukommelsesadresse føre til, at programmet går ned.

Pegere understøttes på sprog som C, C ++, Pascal og mange samlingsprog.

Pointer -en peger på hukommelsesadressen tilknyttet variabel b.

Hvad er en reference?

En henvisning er simpelthen en alternativ identifikator for en værdi, der er gemt i hukommelsen. Det giver et program indirekte adgang til et bestemt datum.

I C ++ syntaks;

int i = 5;

int & ref = jeg;

Den første linje definerer en variabel, der er initialiseret med en værdi af 5. Den anden linje erklærer 'ref' som et objekt af typen 'reference til int', der henviser til i. En henvisning adskiller sig fra selve dataene, da en reference implementeres som den fysiske adresse på det bestemte nulpunkt, der er gemt i hukommelsen.

Når den er defineret, kan en reference ikke tildeles igen en ny værdi. En reference henviser altid til det objekt, som det initialiseres med. I den følgende tildeling henviser ref stadig til i, men værdien er nu 20.

ref = 20;

I henhold til ovenstående eksempel kræver dereferencing-referencer ingen operatører.

Henvisninger kan bruges, når en variabel altid henviser til et objekt. Dette skyldes, at i modsætning til pointere, kan referencer ikke være nul og skal altid tildeles ved initialisering. Da referencer altid skal henvise til et eller andet objekt, sikrer en sådan variabel en reference, at programmet fungerer effektivt og korrekt. I betragtning af at der ikke er nogen nullreferencer, behøver gyldigheden af ​​en referencevariabel ikke at blive testet.

Referencevariabler kan være bruges til effektivt at videregive store data som argumenter til procedurer. Henvisninger bruges også til at dele store data mellem forskellige kodeområder, da hver kode holder en henvisning til dataene.

Programmeringssprog som C ++, Java, Python, Perl, PHP, Ruby osv. Understøtter referencer.

Hvad er forskellen mellem Pointer og Reference?

Definition af pointer og reference

Pointer: En markør er hukommelsesadressen til et objekt, der er gemt i computerenhed.

Reference: En reference er en alternativ identifikation eller et alias for et objekt.

Egenskaber ved pointer og reference

Erklæring

Pointer: En markør deklareres med * -operatøren.

Reference: En reference er erklæret med & operatøren.

dereferere

Pointer: En markørvariabel kræver, at * -operatoren udskilles.

Reference: En referencevariabel kræver, at der ikke udnyttes nogen operatør.

Initialiserer

Pointer:  Pegere kan initialiseres til null. Sådanne variabler kaldes null-pointers.

Reference: Henvisninger kan ikke initialiseres til null. Der er ikke sådan noget som en nullreference. En reference skal altid henvise til et objekt.

reassignments

Pointer: En markørvariabel kan tildeles igen for at henvise til forskellige objekter.

Reference: En referencevariabel kan ikke tildeles igen. Det henviser altid til det objekt, som det blev initialiseret med.

Anvendelse

Pointer: Markørvariabler skal bruges, når muligheden for at henvise til intet eksisterer, eller når det kræves at henvise til forskellige ting på forskellige tidspunkter.

Reference: Referencevariabler skal bruges, når der altid vil være et objekt at henvise til, og når det ikke er nødvendigt at bruge referencevariablen til at henvise til noget andet end det objekt.

Anvendelse af brug

Pointer: Pointervariabler kan bruges til at implementere algoritmer og datastrukturer.

Reference: Referencevariabler kan bruges i funktionsparametre, og returtyper definerer nyttige grænseflader.

Brugte sprog:

Pointer: Programmeringssprog som C, C ++, Pascal og mange samlingsprog understøtter tip.

Reference: Programmeringssprog som C ++, Java, Python, Perl, PHP, Ruby osv. Understøtter referencer.

Billed høflighed: “Pegere” af denne fil blev lavet af bruger: SvenTranslation.Own work.This vektorbillede blev oprettet med Inkscape. (CC BY-SA 3.0) via Commons -