Wskaźniki w C/C++

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Wskaźnik to zmienna, która przechowuje adres innej zmiennej w pamięci, a nie jej zwykłą wartość. W językach C i C++ wskaźniki są oznaczane znakiem * przy deklaracji typu.

Przykład

int zmienna1 = 158;
int *zmienna2 = &zmienna1;

W tym kodzie:
- zmienna1 jest zwykłą zmienną typu int i przechowuje wartość 158,
- zmienna2 jest wskaźnikiem na typ int, czyli może przechowywać adres zmiennej typu int,
- operator & oznacza pobranie adresu zmiennej,
- zapis &zmienna1 oznacza: „adres zmiennej zmienna1”.

Dlatego do zmienna2 zostanie przypisany adres zmiennej zmienna1, a nie liczba 158.

Operator * i operator &

Wskaźniki często sprawiają trudność, ponieważ znak * ma różne znaczenia zależnie od miejsca użycia:

int *wsk;

Tutaj * oznacza deklarację wskaźnika.

*wsk

Tutaj * oznacza odwołanie się do wartości znajdującej się pod adresem zapisanym we wskaźniku, czyli dereferencję.

Operator & pobiera adres zmiennej:

int liczba = 10;
int *adres = &liczba;

Najważniejsze do zapamiętania

  • int x = 158; — zmienna x przechowuje wartość liczbową.
  • int *p = &x; — wskaźnik p przechowuje adres zmiennej x.
  • *p — oznacza wartość znajdującą się pod adresem przechowywanym w p, czyli w tym przypadku 158.

Na egzaminie warto odróżniać wartość zmiennej od adresu zmiennej.