Sammenligningstabel
Grunnlag for sammenligning | Pointer | Henvisning |
---|---|---|
grunn~~POS=TRUNC | Pekeren er minnesadressen til en variabel. | Referansen er et alias for en variabel. |
returer | Pekervariabelen returnerer verdien som er plassert på adressen som er lagret i pekervariabelen som foregår av pekerskiltet '*'. | Referansevariabelen returnerer adressen til variabelen foran referansesignalet '&'. |
operatører | *, -> | & |
Null Reference | Pekervariabelen kan referere til NULL. | Referansevariabelen kan aldri referere til NULL. |
initialisering | En uninitialized pointer kan opprettes. | En uninitialisert referanse kan aldri opprettes. |
Tidspunkt for initialisering | Pekervariabelen kan initialiseres når som helst i programmet. | Referansevariabelen kan bare initialiseres når den ble opprettet. |
reinitialization | Pekervariabelen kan gjenopprettes så mange ganger som nødvendig. | Referansevariabelen kan aldri gjenopprettes på nytt i programmet. |
Definisjon av pekeren
En "peker" er en variabel som holder minneplasseringen til en annen variabel. Operatørene som brukes av pekervariabelen er * og ->. Erklæringen av pekervariabelen inneholder basisdatatypen etterfulgt av tegnet * * og variabelenavnet.
skriv * varnavn
La oss forstå pointer ved hjelp av et eksempel.
int a = 4; int * ptr = & a; cout <Her har vi en heltallvariabel a og en pointervariabel ptr som lagrer adressen til variabel a.
Pointer Arithmetic
Pekervariabelen kan betjenes med to aritmetiske operatører som er "tillegg" og "subtraksjon". Tillegget refereres til som "inkrement", og subtraksjonen refereres til som "decrement". Når en pekervariabel økes, peker den på minnelokaliteten til den neste variabelen av basetypen. Når en pekervariabel er dekrementert, peker den på minnestedet for den forrige variabelen av basestypen. Derfor kan en rekkevidde effektivt nås med en pekervariabel.
Flere indirection
En peker peker mot den andre pekervariabelen som peker mot målverdien. Denne typen peker er alltid initialisert med adressen til en annen pekervariabel. Deklarasjonen av en peker til en peker er som følger.
skriv ** varnavnLa oss studere det med et eksempel.
int a = 4; int * ptr1 = & a; int ** ptr2 = & ptr1; cout <Funksjonspeker
Som vi vet at en funksjon ikke er en variabel, har den fortsatt en minneplass, som kan tilordnes en pekervariabel. Når en peker peker til en funksjon, kan funksjonen bli kalt med den funksjonspekeren.
De viktige punktene å huske om pekeren.
- Pekervariabelen kan opprettes uten initialisering, og den kan initialiseres hvor som helst i programmet.
- Pekervariabelen kan på nytt endres til en annen variabel.
- Pekervariabelen kan referere til NULL.
Definisjon av referanse
Referansevariabelen brukes til å referere til variabelen som er tilordnet den referansevariabelen. Operatøren som brukes av referansevariabelen er '&'. Erklæringen av en referansevariabel inneholder basistype etterfulgt av '&' tegn og deretter variabelt navn.
type & refer_var_name = var_ navn;Her er typen datatypen, & operatøren bekrefter at det er en referansevariabel. Refer_var_name er navnet på referansevariabelen. Varnavnet er navnet på variabelen, som vi vil at referansevariabelen skal referere til.
La oss forstå referansevariabelen ved hjelp av et eksempel.
int a = 4; int & b = a; // b refererer til ab = 6; // nå a = 6Her er variabelen av type int tilordnet en verdi 4. Referansevariabelen tilordnes variablen a, dvs. b er alias av a. Nå, når vi tilordner en annen verdi til b, endrer vi verdien av a. Det kan derfor sies at endringene som gjøres til en referansevariabel, også vil forekomme i variabel referert av denne referansevariabelen.
Det viktigste poenget er at referansevariabelen skal initialiseres på tidspunktet for opprettelsen. Når referansevariabelen initialiseres med en variabel, kan den ikke gjenopprettes for å referere til en annen variabel. I det øyeblikket du tilordner en verdi til en referansevariabel, tilordner du den verdien til en variabel som en referansevariabel peker på. Referansevariabelen kan aldri referere til NULL. Aritmetikk kan ikke utføres på en referansevariabel.
Referansevariabelen kan brukes på tre måter:
- Som en funksjon avkastningsverdi.
- Som en funksjonsparameter.
- Som en selvstendig referanse.
Viktige forskjeller mellom pekeren og referansen
- Referanse er som å opprette et annet navn for å henvise en variabel slik at den kan refereres til med forskjellige navn. På den annen side er en peker bare en minnesadresse til en variabel.
- En pekervariabel hvis den foregår med '*' returnerer verdien av en variabel hvis adresse er lagret i pekervaren. En referansevariabel når den foregår med '&' returnerer adressen til variabelen.
- Pekeren operatører er * og -> mens referanse operatøren er &.
- En pekervariabel hvis den ikke har noen variables adresse, den peker til null. På den annen side kan en referansevariabel aldri referere til null.
- Du kan alltid opprette en enhetlig pekervariabel, men vi lager en referanse når vi trenger et alias av en variabel, slik at du aldri kan opprette en enhetlig referanse.
- Du kan reinitialisere en peker, men når du initialiserer bevegelsen, kan du ikke på nytt innstille den.
- Du kan opprette en tom peker og initialisere den når som helst, men du må initialisere refrence bare når du oppretter en referanse.
Merk:
Java støtter ikke pekere.
Konklusjon
Pekeren og referansen begge brukes til å peke eller referere til en annen variabel. Men begge er forskjellige i bruk og implementering.