русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Re,im: real


Дата додавання: 2014-11-28; переглядів: 887.


END;

2.12. Вказівники

До цього часу ми зустрічались з змінними, описаними в розділі var з описом імені змінної та її типом. Такі змінні Н. Вірт назвав статичними. Ці змінні можна використовувати, якщо відомо скільки пам’яті потрібно буде програмі. Але існує ряд задач, для яких неможливо наперед передбачити об’єм необхідної пам’яті. В цих задачах потрібний інший підхід: змінні потрібно формувати динамічно, не зв’язуючи їх з структурою програми. Так як засобів для явного опису таких змінних немає, то звертатися до них по імені неможливо. До таких змінних звертаються через вказівники, що створюються при формуванні динамічних змінних. Приклад однонаправленого списку схематично можна зобразити наступним чином:

  ® Вказівник ® Вказівник ® Nil
  Дані   дані    
               

Вказівник вказує на наступний елемент. Всі елементи списку мають однаковий формат. Верхнє поле кожного елемента використовується для вказування адреси наступного елемента. Якщо елемент не має наступного елемента , то вказівнику в ньому присвоюється значення Nil.

Опис типу “ вказівник ” має вигляд:

^Ідентифікатор типу

Приклад

Type

Link=^object;

Var

P: Link;

ЗмІнна Р є вказівником на дані типу object. Вказівник – це адреса, а вказівникова змінна – це вмістиме ,що міститься по даному адресу.

Приклад. Описати динамічну структуру даних, що є однонаправленим списком. Кожний елемент цієї структури має два поля. Перше поле відводиться під дійсне число, а друге – містить адресу наступного елемента динамічної структури.

Type

Point=^Data;

Data=record

R:real;


<== попередня лекція | наступна лекція ==>
Стандартні функції і оператори для роботи з рядками | Next:point


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн