Typy wskaźnikowe. Zmienne dotychczas omówionych typów, tj. typów prostych i strukturalnych, charakteryzują się tym, że istnieją przez cały czas wykonywania tej części , w której są zadeklarowane. Są to tzw. zmienne statyczne. W języku Turbo Pascal występują też zmienne dynamiczne reprezentujące obiekty, dla których pamięć jest przydzielana i zwalniana na okreśolne żądanie. Zmienne te nie posiadają identyfikatorów, a odwołanie do nich następuje za pomocą wskaźnika. Wartościami wskaźników są elementy typu wskaźnikowego, które określają adresy pamięci zmiennych dynamicznych. Zastosowanie w programie zmiennych dynamicznych pociąga za sobą konieczność zdefiniowania odpowiednich typów wskaźnikowych. Definicja pojedynczego typu wskaźnikowego ma postać:
TYPE Identyfikator_typu = ^Identyfikator_typu_bazowego;
Poprzyjmy to przykładem:
TYPE wskaznik = ^zapis;
zapis = record
Tekst: String[80];
Liczba: Integer;
end;
Definicja ta wiąże typ wskaznik ze zbiorem wskazań danych typu zapis. Jeśli wprowadzimy teraz deklarację:
VAR adres : wskaznik;
to zmiennej wskażnikowej adres będą mogły być w programie przypisywane adresy
pamięci danych typu zapis.
W Pascalu występują dwa predefiniowane typy
wskaźnikowe są to typy Pointer (zmienne tego typu są zgodne z dowolnym
innym typem wskaźnikowym) i PChar (reprezentuje wskaźnik do łańcuchów
zakończonych znakiem pustym).
Jednym ze słów kluczowych jest słowo
nil, które oznacza stałą typu wskaźnikowego nie określającą żadnego
adresu (nil wskazuje na adres pusty).