Skip to main content

Co to jest operator dereferencji?

Operator dereeferencji jest symbolem używanym w programowaniu komputerowym do pobierania wartości znajdującej się pod określonym adresem pamięci.Operator, zwykle reprezentowany przez gwiazdkę w kodzie źródłowym, jest stosowany przed zmienną wskazującą na adres pamięci lub wskaźnik.Czasami nazywany operatorem pośredniego operatora dereferencji może być również użyte podczas deklarowania lub inicjalizacji zmiennych, aby wskazać, że są to wskaźniki do typu danych, a nie samego typu danych.Przy określaniu kolejności operacji operator dereeferencji ma pierwszeństwo przed prawie wszystkimi standardowymi operatorami matematycznymi.

Aby zrozumieć, co robi operator dereeferencji, ważne jest, aby zrozumieć, w jaki sposób działają typy danych w programowaniu komputerowym.Zmienna w programie może pomieścić wartość.Wiele razy jest to po prostu liczba całkowita lub ciąg znaków.Innym razem może to być adres pamięci, który wskazuje na wartość całkowitą.Zmienne, które trzymają adresy pamięci, nazywane są wskaźnikami.

Gdy należy przypisać, zmodyfikować lub pobierać dane przechowywane na adresie pamięci, które zawiera wskaźnik, należy użyć operatora dereeferencji.Jeśli operacja matematyczna, taka jak dodanie, jest wykonywana ze zmienną wskaźnika bez dereferencji, wówczas operacja zostanie wykonana na adresie pamięci, a nie zmiennej, na którą wskazuje.Są chwile, kiedy operacje arytmetyczne wykonywane na adresach pamięci mogą zwiększyć wydajność, jak w przypadku kroku przez tablicę, dlatego ta funkcjonalność istnieje.Gdy operator dereferencji zostanie użyty na wskaźniku, wszystkie operacje zostaną wykonane na danych przechowywanych w lokalizacji pamięci, a nie sam adres pamięci.

Operator może być również używany przy początkowym deklarowaniu nowej zmiennej.Umieszczając operatora między typem zmiennej a nazwą zmiennej, wskazuje, że nowa zmienna powinna być wskaźnikiem typu danych, a nie tylko instancją typu.Zmienne, które są tworzone w tej modzie, muszą być zainicjowane z pewnym rodzajem funkcji alokacji pamięci, ponieważ wskaźnik będzie musiał zostać ustawiony na nieużywaną lokalizację pamięci przez menedżera pamięci, którego program korzystaUnikaj podczas korzystania z operatora dereferencji.W szczególności próbuje wytrącić wskaźnik zerowy lub niezdefiniowany.Wskaźnik technicznie nie ma adresu pamięci, więc zostaną wygenerowane różne błędy lub wyjątki, które zatrzymają wykonywanie programu.Istnieją bezbezpieczne wersje operatora dereferencji, które nie spowodują błędu, ale operatorzy ci mają inną składnię.