Co to jest wskaźnik w języku C?
Wskaźnik w języku C to zmienna, która przechowuje adres pamięci innej zmiennej, obiektu lub obszaru zaalokowanego dynamicznie. Nie przechowuje bezpośrednio zwykłej wartości, np. liczby 10, tylko informację, gdzie ta wartość znajduje się w pamięci.
Deklaracja wskaźnika
Wskaźnik deklaruje się za pomocą operatora *:
int *p;
Oznacza to, że p jest wskaźnikiem na zmienną typu int.
Pobranie adresu zmiennej
Do pobrania adresu zmiennej służy operator &:
int liczba = 10;
int *p = &liczba;
Tutaj p przechowuje adres zmiennej liczba.
Odczyt wartości przez wskaźnik
Operator * może też służyć do odwołania się do wartości znajdującej się pod adresem zapisanym we wskaźniku. Nazywa się to dereferencją:
printf("%d", *p); // wypisze 10
Do czego używa się wskaźników?
Wskaźniki są wykorzystywane m.in. do:
- przekazywania zmiennych do funkcji przez adres,
- dynamicznej alokacji pamięci,
- pracy z tablicami i napisami,
- tworzenia struktur danych, np. list jednokierunkowych,
- bezpośredniego zarządzania pamięcią.
Ważne na egzaminie
Wskaźnik nie jest funkcją, nie jest typem tekstowym i nie przechowuje wartości logicznej. Najkrótsza poprawna definicja brzmi: wskaźnik to zmienna przechowująca adres pamięci.