Wskaźniki i referencje 
Arytmetyka wskaźników

Arytmetyka wskaźników daje równie wielkie możliwości jakie są niebezpieczeństwa związane z jej niepoprawnym używaniem.

Wskaźniki przechowują adresy obiektów. Kompilator wie, jakiego typu jest obiekt pokazywany przez wskaźnik i ile pamięci taki obiekt zajmuje. Pozwala to na wyliczenie jaki jest adres następnego, czy poprzedniego obiektu w pamięci.

Niech T będzie pewnym typem. Jeśli do wskaźnika T* p dodamy liczbę k, to wskaźnik ten przesuwa się o k*sizeof(T) bajtów. Na przykład, po wykonaniu:

int n;
int* p = &n;
p++;

wskaźnik p pokazuje adres tuż za zmienną n. Zatem zapis p++ w odniesieniu do wskaźnika należy interpretować jako "przesuń się o rozmiar jednego int" a nie o jeden bajt.

Ostrzeżenie:
  • Wskaźniki dają programiście pełną władzę nad całością dostępnej pamięci. Pozwala to na pisanie bardzo szybkich programów oraz korzystanie z zasobów niedostępnych bez ich użycia.
  • Kompilator nie sprawdza, czy to, na co pokazuje wskaźnik jest poprawnym obiektem. Niepoprawne użycie wskaźników, a szczególnie arytmetyki wskaźników prowadzi na ogół do trudnych do znalezienia błędów.
Materiały przeznaczone wyłącznie dla studentów
Instytutu Informatyki i Matematyki Komputerowej UJ
Daniel Wilczak