Зазвичай змінна зберігає деякі дані. Однак крім звичайних, існують змінні, які посилаються за всіма іншими змінними. Такі змінні називаються вказівниками. Покажчик – це змінна, значенням якої є адреса іншої змінної або структури даних. Графічно покажчик може бути зображений так, як на рис. 8.5.
Рис. 8.5. Змінна-вказівник
Покажчик, як і будь-яка інша змінна програми, повинен бути оголошений в розділі оголошення змінних. У загальному вигляді оголошення покажчика виглядає наступним чином:
Ім’я: ^ Тіл;
де:
- ім’я – ім’я змінної-покажчика;
- Тип – тип змінної, на яку вказує змінна-вказівник;
значок ^ показує, що оголошується змінна є покажчиком.
Наведемо приклади оголошення покажчиків:
p1: ^ Integer; р2: ^ real;
У наведеному прикладі змінна p1 – це покажчик на змінну типу integer, a p2 – покажчик на змінну типу real.
Тип змінної, на яку посилається покажчик, називають типом покажчика. Наприклад, якщо в програмі оголошений покажчик р: ^ integer, то кажуть: ^ р – покажчик цілого типу або р – це покажчик на ціле .
На початку роботи програми змінна-вказівник ні на що не вказує . У цьому випадку говорять, що значення покажчика одно NIL. Зарезервоване слово NIL відповідає значенням покажчика, який ні на що не вказує.
Ідентифікатор NIL можна використовувати в інструкціях присвоювання і в умовах. Наприклад, якщо змінні pi і р2 оголошені як покажчики, то інструкція
p1 : = NIL;
встановлює значення змінної, а інструкція if р2 = NIL then ShowMessage ( ‘Покажчик р2 НЕ инициализирован!’);
перевіряє,ініціалізований Чи покажчик р2.
Покажчику можна привласнити значення – адреса змінної відповідного типу (в тексті програми адреса змінної – це ім’я змінної, перед яким стоїть оператор @). нижче приведена інструкція, після виконання якої змінна р міститиме адресу змінної п.
р : = @n;
Крім адреси змінної, вказівником можна привласнити значення іншого покажчика за умови, що вони є покажчиками на змінну одного типу. Наприклад, якщо змінні pi і р2 є покажчиками типу integer, то в результаті виконання інструкції
p2 : = P1;
змінні pi і р2 вказують на одну і ту ж змінну.
Покажчик можна використовувати для доступу до змінної, адреса якої містить покажчик. Наприклад, якщо р вказує на змінну 1, то в результаті виконання інструкції
р ^ : = 5;
значення змінної i дорівнюватиме п’яти. У наведеному прикладі значок ^ показує, що значення п’ять присвоюється змінної, на яку вказує змінна-вказівник.