Покажчики

Зазвичай змінна зберігає деякі дані. Однак крім звичайних, існують змінні, які посилаються за всіма іншими змінними. Такі змінні називаються вказівниками. Покажчик – це змінна, значенням якої є адреса іншої змінної або структури даних. Графічно покажчик може бути зображений так, як на рис. 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 дорівнюватиме п’яти. У наведеному прикладі значок ^ показує, що значення п’ять присвоюється змінної, на яку вказує змінна-вказівник.