U računalnom programiranju, operater dereference, također poznat i kao indirektni operator, djeluje na pokazivačku varijablu i vraća vrijednost lokacije, ili l-vrijednost, koju pokazuje u memoriji. U C programskom jeziku, operator deference je označen zvjezdicom ( * ).
Na primjer, u C, možemo proglasiti varijablu x koja drži cjelobrojnu vrijednost, i varijablu p koja drži pokazivač na cijeli broj u memoriji:
int x; int * p;
Ovdje zvjezdica govori kompajleru, " p nije cijeli broj, već pokazivač na mjesto u memoriji u kojem se nalazi cijeli broj." Ovdje se ne radi o dereferenciji, već o dijelu deklaracije pokazivača.
Sada možemo postaviti p na mjesto dodijeljeno za vrijednost x pomoću & operator, što znači "adresa".
p = & x;
Ova radnja govori prevodiocu: "Adresa u memoriji na koju p ukazuje je adresa koju ste dodijelili za cijeli broj x ."
Za ilustraciju, ako postavimo vrijednost x na 1 koristeći konvencionalnu metodu i ispišemo vrijednost, izlaz će biti 1 .
x = 1; printf ("% d", x);
Međutim, također možemo promijeniti vrijednost x referenciranjem p . To radimo sa zvjezdicom:
* p = 2; printf ("% d", x);
Izlaz se mijenja u 2 .
Drugim riječima, nakon što je p proglašen kao pokazivač istog tipa kao x, a zatim postavljen da pokazuje na x-ovu vrijednost, možemo koristiti x i * p naizmjenično. Budući da se obje odnose na istu stvar, promjena vrijednosti jedne će promijeniti vrijednost druge.
Pokazivač, programski izrazi, varijabla