Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Книга, учебник » Програмування на мові Object Pascal

Реферат Програмування на мові Object Pascal





о - зміщення.


В 

Структура адреси осередки на прикладі 20-і розрядної адресації:

В 
В 

Оголошення покажчиків


Існує два типи вказівників:

1. типізовані (зв'язуються з деяким типом даних);

2. НЕ типізовані (просто зберігають адресу певної ділянки пам'яті). Покажчики оголошуються в розділі опису змінних і в розділі опису типів (Type і Var).

Оголошення типізованих покажчиків.


ім'я: ^ назву типу;

Var: ^ integer;: ^ real;

... = ^ PersonRecord; = Record;: string [20];: byte;: PersonPeinter;;

У OPascal будь-який ідентифікатор або тип, перед його використанням повинен бути попередньо оголошений (виняток зроблено лише для покажчиків, які можуть посилатися на ще не оголошений тип даних). Це пов'язано з тим, що динамічна пам'ять дає можливість організовувати дані у вигляді списку. p align="justify"> Об'ява не типізованих покажчиків.


ім'я: painter;

Var: painter;, p2: ^ byte; [1 байт] 3, p4: ^ real; [ 8 байт]


Типізовані і не типізовані покажчики зберігають значення адрес, однак, значення одного покажчика не завжди можна передавати іншому. У OPascal передавати значення можна тільки між покажчиками, які пов'язані з одним і тим же типом даних, виключення становлять не типізовані покажчики, які сумісні з усіма типами даних. br/>

Var: painter;, p2: ^ byte;, p4: ^ real;

...: = p2;: = p4; 1: = p3;

p4: = p2;

p1: = p1;

p3: = p;

Обнулення покажчика


p: = Nil; - після виконання цієї операції покажчик продовжує займати місце в пам'яті, але вказує в нікуди (тобто ні на одну клітинку).


В 

p: = Nil;

В 

Виділення та вивільнення динамічної пам'яті


Вся динамічна пам'ять в OPascal розглядається як суцільний масив байт, який називається купа (HEAP). Фізично вона розташовується в старших адресах пам'яті відразу за областю, яку займає код програми. br/>В 

При роботі з купою використовуються стандартні, оголошені за замовчуванням змінні:

1. HeapOrg - зберігає адресу початку купи;

2. HeapEnd - зберігає адресу кінця купи;

3. HeapPTR - зберігає адресу початку незайнятого ділянки купи.

Виділення в пам'яті для типізованих покажчиків здійснюється за допомогою процедури New (ім'я покажчика):

Var

p: ^ byte;

New (p);

p ^: = 2;


1. Адміністратор купи переглядає її вміст і якщо є вільний байт - виділяє його, а адреса цього байта записується в змінну (p).

2. Запис числа (2) у вільне місце з адресою (p).

p ^ - разадресація покажчика, тобто звернення до значення зберігається за адресою, яка лежить в (p). p align="justify"> Процедура New виділяє динамічну пам'ять для необхідного покажчика і тільки після цього покажчик можна використовувати. Покажчики можна використовувати тільки в операціях відповідного типу, тобто в операціях з адресами.

Разадресованние покажчики можуть використовуватися в будь-яких виразах і операціях:


Var: ^ byte;: real; (p); ^: = 2;: = SQRT (p ^) +2 * p ^/3


Вивільнення динамічної пам'яті.

Після використання динамічних змінних, пам'ять зайняту ними необхідно вивільнити, для цього використовується процедура dispose (ім'я покажчика):


Dispose (p);


Після процедури dispose вказівником знову можна виділити пам'ять.

Після процедури dispose значення змінної вивільняється, а вказівником присвоюється значення Nil.

При роботі з покажчиками відповідальність за вивільнення пам'яті лягає на програміста, тому що Pascal при завершенні роботи програми, самостійно зайняту пам'ять не вивільняє, це може призвести до утеске динамічної пам'яті. p align="justify"> Для НЕ типізованих покажчиків виділення пам'яті здійс...


Назад | сторінка 20 з 24 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Практична обробка безлічі даних, що представляють собою масив покажчиків на ...
  • Реферат на тему: Опісові композіційно-мовленнєві форми в творах Т. Прохаська &З цього можна ...
  • Реферат на тему: Анексія Криму, як можна вірішіті Конфлікт України с Россией чі можна его ві ...
  • Реферат на тему: Аналіз експлуатаційної надійності та моделювання роботи покажчика тахометра ...
  • Реферат на тему: Розробка контролера для маніпулятора-покажчика трекбола