Ieteicams, 2024

Redaktora Izvēle

Starpība starp rādītāju un atsauci

Abi “rādītāji” un “atsauces” tiek izmantoti, lai norādītu uz citu mainīgo. Bet, abu pušu galvenā atšķirība ir tā, ka rādītāja mainīgais norāda uz mainīgo, kura atmiņas vieta tajā ir saglabāta. Atsauces mainīgais ir tam piešķirtā mainīgā alias. Turpmāk redzamajā salīdzinājuma tabulā aplūkotas citas atšķirības starp rādītāju un atsauci.

Salīdzinājuma diagramma

Salīdzinājuma pamatsRādītājsAtsauce
PamataRādītājs ir mainīgā atmiņas adrese.Atsauce ir mainīgā alias.
AtgriežRādītāja mainīgais atgriež vērtību, kas atrodas uz rādītāja, kas saglabāts rādītāja mainīgajā, pirms kura ir rādītāja zīme “*”.Atsauces mainīgais atgriež mainīgā lieluma adresi, pirms kura ir atsauces zīme “&”.
Operatori*, ->&
Nulles atsauceRādītāja mainīgais var attiekties uz NULL.Atsauces mainīgais nekad nevar atsaukties uz NULL.
InicializācijaVar izveidot neatjaunotu rādītāju.Nekad nevar izveidot nekonstatētu atsauci.
Inicializācijas laiksRādītāja mainīgo var inicializēt jebkurā programmas brīdī.Atsauces mainīgo var inicializēt tikai tās izveides laikā.
AtjaunošanaRādītāja mainīgo var atjaunot tik reižu, cik nepieciešams.Atsauces mainīgo nevar atkārtoti atkārtot programmā.

Rādītāja definīcija

„Rādītājs” ir mainīgais, kas satur cita mainīgā atmiņas vietu. Operatori, ko izmanto rādītāja mainīgais, ir * un ->. Rādītāja mainīgā lieluma deklarācija satur bāzes datu tipu, kam seko zīme “*” un mainīgā nosaukuma.

 ierakstiet * var_name; 

Ļaujiet mums saprast rādītāju ar piemēru.

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

Šeit mums ir vesels skaitļa mainīgais a un, rādītāja mainīgais ptr, kas saglabā mainīgā a adresi.

Rādītājs aritmētisks

Rādītāja mainīgo var darbināt ar diviem aritmētiskiem operatoriem, kas ir “pievienošana” un “atņemšana”. Papildinājums tiek saukts par “pieaugumu”, un atņemšana tiek saukta par “samazinājumu”. Tā kā rādītāja mainīgais ir palielināts, tas norāda uz nākamā mainīgā bāzes tipa mainīgā atrašanās vietu. Tā kā rādītāja mainīgais ir samazināts, tas norāda uz tā bāzes tipa iepriekšējā mainīgā atmiņas vietu. Tādējādi masīvu var efektīvi piekļūt ar rādītāja mainīgo.

Vairākkārtēja orientācija

Rādītājs norāda uz citu rādītāja mainīgo, kas norāda uz mērķa vērtību. Šis rādītājs vienmēr tiek inicializēts ar cita rādītāja rādītāja adresi. Rādītāja deklarācija uz rādītāja ir šāda.

 tips ** var_name; 

Pētīsim to ar piemēru.

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

Funkciju rādītājs

Kā zināms, funkcija nav mainīgais, tomēr tai ir atmiņas vieta, ko var piešķirt rādītāja mainīgajam. Kad rādītājs norāda uz funkciju, tad šo funkciju var saukt ar šo funkciju rādītāju.

Svarīgi punkti, kas jāatceras par rādītāju.

  • Rādītāja mainīgo var izveidot bez tās inicializācijas, un to var inicializēt jebkurā vietā programmā.
  • Rādītāja mainīgo var atjaunot uz citu mainīgo.
  • Rādītāja mainīgais var attiekties uz NULL.

Atsauces definīcija

Atsauces mainīgo lielumu izmanto, lai apzīmētu mainīgo, kas piešķirts šim atsauces mainīgajam lielumam. Operators, ko izmanto atsauces mainīgais, ir '&'. Atsauces mainīgā deklarācija satur bāzes tipu, kam seko “&” zīme un pēc tam mainīgā nosaukuma.

 ierakstiet & refer_var_name = var_ nosaukums; 

Šeit veids ir datu tips, un operators apstiprina, ka tas ir atsauces mainīgais. Refer_var_name ir atsauces mainīgā nosaukums. Var_name ir mainīgā lieluma nosaukums, kuru mēs vēlamies atsauces mainīgajam.

Ar piemēru varēsim saprast atsauces mainīgo.

 int a = 4; int & b = a; // b attiecas uz ab = 6; // tagad a = 6 

Šajā gadījumā int tipa mainīgajam ir piešķirta vērtība 4. Atsauces mainīgais ir piešķirts mainīgais a, ti, b ir a. Tagad, kad piešķiram citu vērtību b, mēs mainām vērtību a. Tādējādi var teikt, ka atsauces mainīgā izdarītās izmaiņas notiks arī mainīgajā mainīgajā lielumā.

Svarīgākais ir tas, ka atsauces mainīgajam lielumam jābūt inicializētam tā izveides laikā. Kad atsauces mainīgais tiek inicializēts ar mainīgo, to nevar atkārtoti pārveidot, lai atsauktos uz citu mainīgo. Kad jūs piešķirat vērtību atsauces mainīgajam lielumam, jūs piešķirat šo vērtību mainīgajam, ko norāda atsauces mainīgais. Atsauces mainīgais nekad nevar atsaukties uz NULL. Aritmētisko nevar veikt ar atsauces mainīgo.

Atsauces mainīgo var izmantot trīs veidos:

  • Kā funkciju atgriešanās vērtība.
  • Kā funkciju parametrs.
  • Kā atsevišķa atsauce.

Galvenās atšķirības starp rādītāju un atsauci

  1. Atsauce ir kā cita nosaukuma izveide, lai norādītu uz mainīgo, lai to varētu atsaukties ar dažādiem nosaukumiem. No otras puses, rādītājs ir vienkārši mainīgā lieluma atmiņas adrese.
  2. Rādītāja mainīgais, ja pirms tā ir *, atgriež mainīgā lieluma vērtību, kura adrese tiek saglabāta rādītāja mainīgajā. Atsauces mainīgais, pirms kura ir “&”, atgriež šī mainīgā adresi.
  3. Rādītāju operatori ir * un -> tā kā atsauces operators ir &.
  4. Rādītāja mainīgais, ja tam nav nekādu mainīgo adresi, tas norāda uz nulli. No otras puses, atsauces mainīgais nevar atsaukties uz Null.
  5. Jūs vienmēr varat izveidot vienotu rādītāja mainīgo, bet mēs izveidojam atsauci, kad mums ir vajadzīgs kāda mainīgā alias, lai jūs nekad nevarētu izveidot vienotu atsauču.
  6. Jūs varat atjaunot rādītāju, bet pēc tam, kad jūs inicializējāt, jūs to vēlreiz nevarat atjaunot.
  7. Jūs varat izveidot tukšu rādītāju un inicializēt to jebkurā laikā, bet jums ir jāsāk inicializēt refrence tikai tad, kad izveidojat atsauci.

Piezīme:

Java neatbalsta norādes.

Secinājums

Abi rādītāji un atsauces tiek izmantoti, lai norādītu uz citu mainīgo. Bet abi atšķiras to izmantošanā un īstenošanā.

Top