tify"> Приклади оголошення покажчиків: p1: ^ integer; р2: ^ real; - це покажчик на змінну типу integer, a p2 - покажчик на змінну типу real.
Тип змінної, на яку посилається вказівник, називають типом покажчика. Наприклад, якщо в програмі оголошений покажчик р: ^ integer, то говорять: ^ р - "покажчик цілого типу" або "р - це покажчик на ціле". p align="justify"> На початку роботи програми змінна-вказівник "ні на що не вказує". У цьому випадку говорять, що значення покажчика одно NIL. Зарезервоване слово NIL відповідає значенню покажчика, який ні на що не вказує. p align="justify"> Ідентифікатор NIL можна використовувати в інструкціях присвоювання і в умовах. Наприклад, якщо змінні p1 і р2 оголошені як покажчики, то інструкція p1: = NIL;
встановлює значення змінної, а інструкція if р2 = NIL then ShowMessage ('Покажчик р2 НЕ инициализирован!');
перевіряє, инициализирован Чи покажчик р2.
Покажчику можна присвоїти значення - адреса змінної відповідного типу (у тексті програми адресу змінної - це ім'я змінної, перед яким стоїть оператор @). Нижче наведена інструкція, після виконання якої мінлива р буде містити адресу змінної n, р: = @ n;
Крім адреси змінної, вказівником можна присвоїти значення іншого покажчика за умови, що вони є покажчиками на змінну одного типу. Наприклад, якщо змінні p1 і р2 є покажчиками типу integer, то в результаті виконання інструкції: p2: = p1;
Покажчик можна використовувати для доступу до змінної, адреса якої містить покажчик. Наприклад, якщо р вказує на змінну i, то в результаті виконання інструкції: р ^: = 5;
значення змінної i дорівнюватиме п'яти. У наведеному прикладі значок ^ показує, що значення п'ять присвоюється змінної, на яку вказує змінна-вказівник. p align="justify"> Динамічної змінної називається змінна, пам'ять для якої виділяється під час роботи програми.
Виділення пам'яті для динамічної змінної здійснюється викликом процедури new. У процедури new один параметр - покажчик на змінну того типу, пам'ять для якої треба виділити. Наприклад, якщо р є покажчиком на тип real, то в результаті виконання процедури new (p); буде виділена пам'ять для змінної типу real (створена змінна типу real), і змінна-вказівник р буде містити адресу пам'яті, виділеної для цієї змінної.
У динамічноїзмінної немає імені, тому звернутися до неї можна тільки за допомогою покажчика.
Процедура, що використовує динамічні змінні, перед завершенням своєї роботи повинна звільнити займану цими змінними пам'ять або, як кажуть програмісти, "знищити динамічні змінні". Для звільнення пам'яті, займаної динамічної змінної, використовується процедура Dispose, яка має один параметр - покажчик на динамічну змінну. p align="justify"> Наприклад, якщо р - п...