Î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ă