Ce este un Operator Derefer?

În programarea pe calculator, un operator de dereferență, de asemenea cunoscut ca un operator de indirecție, operează pe o variabilă a indicatorului și returnează valoarea locației sau valoarea l, pe care o indică în memorie. În limba de programare C, operatorul de deferență este notat cu un asterisc ( * ).

De exemplu, în C, putem declara o variabilă x care deține o valoare întregă și o variabilă p care deține un pointer la o valoare întregă în memorie:

 int x; int * p; 

Aici, asteriscul îi spune compilatorului: " p nu este un întreg, ci mai degrabă un pointer către o locație din memorie care deține un întreg". Aici nu este o dereferență, ci o parte a unei declarații a indicatorului.

Acum putem seta p la locația alocată pentru valoarea lui x folosind operatorul &, care înseamnă "adresa lui".

 p = & x; 

Această acțiune îi spune compilatorului: "Adresa din memorie care indică p este adresa pe care ați alocat-o pentru întregul x ."

Pentru a ilustra, dacă setăm valoarea lui x la 1 folosind metoda convențională și tipărim valoarea, rezultatul va fi 1 .

 x = 1; printf ("% d", x); 

Cu toate acestea, putem schimba și valoarea lui x prin referirea p . Facem acest lucru cu un asterisc:

 * p = 2; printf ("% d", x); 

Iar rezultatul se schimbă la 2 .

Cu alte cuvinte, după ce p a fost declarat ca un pointer de același tip ca x și apoi a fost setat să indice valoarea lui x, putem folosi x și * p interschimbabil. Deoarece ambele se referă la același lucru, schimbarea valorii unei persoane va schimba valoarea celeilalte.

Pointer, Termeni de programare, Variabilă