Wskaźnik (pointer, zmienna wskaźnikowa) - to rodzaj zmiennej przechowującej adres miejsca w pamięci, pod którym może być przechowywane jakaś dane określonego typu i rozmiaru. Wskaźnik wskazuje miejsce, gdzie taka struktura danych rozpoczyna się w pamięci RAM i zwykle określony zostaje również typ danych, na jaki wskazuje.
VAR a : Integer; // deklaracja (gdzieś w pamięci) zmiennej a typu Integer
Kompilator ukrywa przed nami adres przechowywania w pamięci zwykłej zmiennej nadając temu adresowi pewną nazwę „a”. Nie mamy też możliwości zmiany miejsca pamięci tej zmiennej ani zmiany adresu na jaki wskazuje zmienna „a”.
a := 100; // przyporządkowanie wartości 100 zmiennej a (gdzieś tam w pamięci)
VAR p : AInteger; // deklaracja wskaźnika typu Integer bez nadania mu wartości!
Wskaźnik p może wskazywać na pewne miejsce w pamięci RAM. Miejsce, na które ma wskazywać zwykle otrzymujemy jako parametr zwrotny np. z procedury new (p). Procedura ta rezerwuje miejsce w pamięci RAM do przechowywania danych typu Integer (tak samo jak deklaracja VAR a:Integer) i do zmiennej wskaźnikowej „p” zapisuje adres, gdzie tą pamięć zarezerwowała. Następnie tak samo jak dla zmiennej „a” trzeba temu miejscu w pamięci przy pi sać j akąś wartość:
pA := 100; // przyporządkowanie wart. i 100 miejscu w pamięci wskazywanemu przez p
Wskaźniki mają tą przewagę nad zwykłymi zmiennymi, iż zmieniać adres, na który wskazują, a dzięki temu nawet kilka wskaźników może wskazywać ten sam adres: r := p;
Wykład 6. Strona 14.
PODSTAWY INFORMATYKI. Adrian Horzyk, http://home.agh.edu.pl/--horzyk