Što je operater s referencama?

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