Co to jest operator Dereferencji?

W programowaniu komputerowym operator dereferencyjny, znany również jako operator indeksu, działa na zmiennej wskaźnikowej i zwraca wartość położenia lub wartość l, którą wskazuje w pamięci. W języku programowania C operator deferencji jest oznaczony gwiazdką ( * ).

Na przykład w C możemy zadeklarować zmienną x, która zawiera wartość całkowitą, i zmienną p, która przechowuje wskaźnik do wartości całkowitej w pamięci:

 int x; int * p; 

W tym przypadku gwiazdka mówi kompilatorowi: „ p nie jest liczbą całkowitą, ale raczej wskaźnikiem do lokalizacji w pamięci, która zawiera liczbę całkowitą”. Tutaj nie jest to dereferencja, ale część deklaracji wskaźnika.

Teraz możemy ustawić p na lokalizację przydzieloną dla wartości x za pomocą operatora &, co oznacza „adres”.

 p = & x; 

Ta akcja mówi kompilatorowi: „Adres w pamięci, na który wskazuje p, jest adresem przydzielonym dla liczby całkowitej x ”.

Aby to zilustrować, jeśli ustawimy wartość x na 1 za pomocą metody konwencjonalnej i wydrukujemy wartość, wyjście będzie równe 1 .

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

Możemy jednak również zmienić wartość x, odwołując się do p . Robimy to za pomocą gwiazdki:

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

A wyjście zmienia się na 2 .

Innymi słowy, po zadeklarowaniu p jako wskaźnika tego samego typu co x, a następnie ustawieniu na wartość x, możemy używać zamiennie x i * p . Ponieważ oba dotyczą tej samej rzeczy, zmiana wartości jednego zmieni wartość drugiego.

Wskaźnik, Warunki programowania, Zmienna