Rekommenderas, 2024

Redaktionen

Skillnad mellan pekare och referens

"Pekaren" och "referensen" båda används för att peka eller hänvisa till en annan variabel. Men den grundläggande skillnaden mellan dem båda är att en pekarevariabel pekar på en variabel vars minnesplats är lagrad i den. Referensvariabeln är ett alias för en variabel som tilldelas den. Jämförelsetabellen nedan utforskar de andra skillnaderna mellan en pekare och en referens.

Jämförelsediagram

Basis för jämförelsePekareReferens
GrundläggandePekaren är minnesadressen till en variabel.Referensen är ett alias för en variabel.
ReturerPekervariabeln returnerar värdet som ligger till adressen som är lagrad i pekervariabeln, som föregås av pekatyget "*".Referensvariabeln returnerar adress för variabeln föregången av referensskylten '&'.
operatörer*, ->&
Null ReferencePekarens variabel kan referera till NULL.Referensvariabeln kan aldrig referera till NULL.
initieringEn uninitialiserad pekare kan skapas.En oinitierad referens kan aldrig skapas.
InitialiseringstidpunktenPekervariabeln kan initieras när som helst i programmet.Referensvariabeln kan endast initieras vid tidpunkten för skapandet.
återinitieringPekarvariabeln kan omstartas så många gånger som krävs.Referensvariabeln kan aldrig geninitieras igen i programmet.

Definition av pekare

En "pekare" är en variabel som rymmer minnesplatsen för en annan variabel. Operatörerna som används av pekarvariabeln är * och ->. Deklarationen av pekervariabeln innehåller basdatatypen följt av '*' -tecknet och variabelnamnet.

 skriv * var_name; 

Låt oss förstå pekaren med hjälp av ett exempel.

 int a = 4; int * ptr = & a; cout < 

Här har vi en heltal variabel a och en pekervariabel ptr som lagrar adressen till variabel a.

Pointer Arithmetic

Pekervariabeln kan användas med två aritmetiska operatörer som är "addition" och "subtraction". Tillsatsen hänvisas till som "inkrement" och subtraktionen hänvisas till som "minskning". När en pekarevariabel ökar, pekar den på minnesplatsen för nästa variabel av bastypen. När en pekarvariabel minskas pekar den på minnesplatsen för den tidigare variabeln av dess bastyp. Därför kan en array nås effektivt av en pekervariabel.

Flera indirektioner

En pekare pekar mot den andra pekervariabeln som pekar mot målvärdet. Denna typ av pekare initieras alltid med adressen till en annan pekervariabel. Deklarationen av en pekare till en pekare är som följer.

 skriv ** var_namn; 

Låt oss studera det med ett exempel.

 int a = 4; int * ptr1 = & a; int ** ptr2 = & ptr1; cout < 

Funktionspekare

Eftersom vi vet att en funktion inte är en variabel, har den fortfarande en minnesplats, som kan tilldelas en pekervariabel. När en pekare pekar på en funktion, kan funktionen kallas med den funktionspekaren.

De viktiga punkterna att komma ihåg om pekaren.

  • Pekervariabeln kan skapas utan initialisering, och den kan initialiseras var som helst i programmet.
  • Pekervariabeln kan ombokas till en annan variabel.
  • Pekarens variabel kan referera till NULL.

Definition av referens

Referensvariabeln används för att referera till variabeln som tilldelas den referensvariabeln. Operatören som används av referensvariabeln är '&'. Deklarationen av en referensvariabel innehåller bastyp följt av "&" tecken och sedan variabelnamn.

 skriv & refer_var_name = var_ namn 

Här är typen datatypen, & operatören bekräftar att det är en referensvariabel. Refer_var_name är namnet på referensvariabeln. Varnamnet är namnet på variabeln, som vi vill att referensvariabeln ska referera till.

Låt oss förstå referensvariabeln med hjälp av ett exempel.

 int a = 4; int & b = a; // b avser ab = 6; // nu a = 6 

Här är variabeln av typ int tilldelad ett värde 4. Referensvariabeln tilldelas variabeln a, dvs b är alias av a. Nu när vi tilldelar ett annat värde till b, ändrar vi värdet på a. Det kan därför sägas att de ändringar som gjorts till en referensvariabel också kommer att uppstå i variabeln som hänvisas till av referensvariabeln.

Den viktigaste punkten är att referensvariabeln måste initieras vid tidpunkten för skapandet. När referensvariabeln initialiseras med en variabel, kan den inte återinitieras för att hänvisa till en annan variabel. I det ögonblick du tilldelar ett värde till en referensvariabel, tilldelar du det värdet till en variabel som en referensvariabel pekar på. Referensvariabeln kan aldrig referera till NULL. Aritmetik kan inte utföras på en referensvariabel.

Referensvariabeln kan användas på tre sätt:

  • Som ett funktionsavkastningsvärde.
  • Som en funktionsparameter.
  • Som en fristående referens.

Viktiga skillnader mellan pekare och referens

  1. Referens är som att skapa ett annat namn för att hänvisa en variabel så att den kan hänvisas till olika namn. Å andra sidan är en pekare helt enkelt en minnesadress för en variabel.
  2. En pekarvariabel om förhand av '*' returnerar värdet för en variabel vars adress lagras i pekarevariabeln. En referensvariabel när förhand av '&' returnerar adressen till den variabeln.
  3. Pekareoperatörer är * och -> medan referensoperatören är &.
  4. En pekarvariabel om den inte har någon variabel adress adresserar den till null. Å andra sidan kan en referensvariabel aldrig referera till Null.
  5. Du kan alltid skapa en enhetlig pekarvariabel, men vi skapar en referens när vi behöver ett alias av någon variabel så att du aldrig kan skapa en enhetlig referens.
  6. Du kan återinföra en pekare, men när du initialiserar avstängningen kan du inte på nytt inaktivera den igen.
  7. Du kan skapa en tom pekare och initiera den när som helst men du måste initialisera refrence endast när du skapar en referens.

Notera:

Java stöder inte pekare.

Slutsats

Pekaren och referensen används båda för att peka eller hänvisa till en annan variabel. Men båda skiljer sig åt i deras användning och implementering.

Top