Вказівники являють собою змінну цілого типу, що інтерпретується як адреса байту пам’яті, яка містить певний елемент даних. Цим елементом може бути змінна, константа, адреса іншої змінної т.ін.
 Звичайно, працюючи з деякою змінною, розробник не цікавиться розміщенням в пам’яті змінних і констант. До них можна просто звернутися за іменем, при цьому Pascal точно знає, де шукати ці змінні і константи. Припустімо, наша програма містить в розділі оголошень такий рядок:
 VAR Number:integer;
  
 Цим рядком ми вказуємо компілятору на необхідність зарезервувати область в пам’яті, на яку ми будемо посилатися по імені Number.
 Адресу, за якою розміщена змінна Number, в пам’яті можна визначити за допомогою оператора @
 P1:=@Number;
 чи за допомогою функції Addr.
 В результаті виконання операції P1:=@Number; в змінну P1 буде записана адреса змінної Number.
 Часто в процесі написання програми виникають ситуації, коли без застосування вказівників неможливо обійтися. Так трапляється, якщо:
 1. Програма працює з великим об’ємом даних (більше 64 Кб)
 2. Програма під час пам’яті використовує дані, об’єм пам’яті для збереження яких зарані невідомий (так часто трапляється при роботі з масивами)
 3. В програмі використовується буфер пам’яті для тимчасового зберігання даних.
 4. Ми використовуємо структуровані змінні, тобто записи, масиви чи множини, які мають різну структуру.
 5. Програма використовує динамічні структури даних (стеки, однозв’язні і двозв’язні списки, черги, бінарні дерева).
  
 Вказівники у Pascal-i можуть зв’язуватися з певним типом даних (типізовані вказівники) чи не зв’язуватися (нетипізовані вказівники). Ще для називання змінних цього типу використовуються терміни: посилання і reference.
  
					Типізовані вказівники
					Для оголошення типізованого вказівника звичайно використовується символ ^, який розміщується безпосередньо перед відповідним типом даних, наприклад:
 TYPE
 P1Ptr=^INTEGER;
 VAR
 P1:^INTEGER;
 В загальному випадку:
 TYPE
 ІмяВказівника=^ІмяБазисногоТипу
 де ІмяБазисногоТипу – будь-який ідентифікатор типу. В результаті такого визначення створені потім вказівники будуть вказувати на об’єкти базового типу, визначаючи тим самим динамічні змінні базового типу. Зараз нас особливо цікавлять вказівники на об’єкти. Синтаксис такого вказівника наступний:
 TYPE
 ObjType=OBJECT
 …
 END;
 ObjPtr=^ObjType