Разделы презентаций


Адресныи? тип

Если компилятор отводит сегмент данных, переменные статические.При обозначение области данных не именем переменной, а указанием ее адреса - Переменные - динамические. Указатель – это переменная, которая в качестве своего значения содержит адрес

Слайды и текст этой презентации

Слайд 1Адресный тип
Указатели

Адресный типУказатели

Слайд 2
Если компилятор отводит сегмент данных,
переменные статические.
При обозначение области

данных не именем переменной, а указанием ее адреса - Переменные

- динамические.
Указатель – это переменная, которая в качестве своего значения содержит адрес байта памяти
(сегмент в адресе кратен 16 + смещение)

Указатели делятся на типизированные и нетипизированные
Var <имя переменной>: <указатель>;

Для объявления типизированного указателя
Var <имя переменной>: ^ <тип>;
Var
u1, u2: ^integer; {типизир.указатель на целое}
r: ^real; {типизир.указатель на вещ.}
Нетипизированный
Var
p: pointer; {нетипизированный указатель объявляет переменные, значением которых будет адрес (не может быть явно выведен на экран или печать ) } _
Если компилятор отводит сегмент данных, переменные статические.При обозначение области данных не именем переменной, а указанием ее адреса

Слайд 3
Куча

Heap

- хип
Память в куче под любую динамически размещаемую переменную выделяется процедурой
NEW (<типизированный_указатель>);
Пример:
Var
U1, U2: ^integer; {типизир.указатели}
R: ^real; {типизир.указатель}
p: pointer; {нетипизир.указатель}
BEGIN
new(u1); {выделяется 2 байта памяти,
указатель смещается на 2 байта}
new(r); {выделяется в памяти 6 байт,
указатель смещается на 6 байт (тип REAL) }
Для нетипизированного указателя другой способ резервирования
Операции присваивания
Пример:
new(u2);
U1:=U2 ; {запрещено U1:=R, R:=U2(разные типы)}
p:=U1;
U2:=p;
сравнения на = и < > _________
Куча                Heap

Слайд 4
Чтобы по указанному адресу разместить значение, за именем указателя ставится

^ (без пробела).

u1^:=20; {в область памяти u1 помещено значение

20}
r^:=2*Pi; {в область памяти r - значение 6.28}
Пример:
r^ := sqr(r^) + u1^ - 27;
значение значение
u1:=u1^+u2^;
Но нельзя r:= sqr(r^) + u1^ - 27;
т.к. указателю нельзя присвоить значение вещ - го типа

Недопустимо смешивать адреса (указатели) и значения (данные):

U1^: = U1 + U2^; r^:= sqr(r); нельзя адрес возводить
значение адрес значение в квадрат

r^:=u1; вещ. данным нельзя присваивать значение
указателя
_________
Чтобы по указанному адресу разместить значение, за именем указателя ставится ^ (без пробела).u1^:=20;  {в область памяти

Слайд 5
Освобождение динамической памяти
DISPOSE ();
Пример:
DISPOSE(R);
DISPOSE(U1); {2 оператора вернут

8 байт}.

NIL (пустой)

Пример:
Сonst
i:^integer = NIL; {объявление константы-указатель}
...
Begin …
if i=NIL then {проверка указателя: "свободный"}
NEW(i); {резервирование памяти}
... {обработка данных}
if i <>NIL then {проверка указателя: «занят"}
DISPOSE(i); {освобождение памяти}
i=NIL; {пометка свободным}

администратором кучи
__________

Освобождение динамической памяти DISPOSE ();Пример:DISPOSE(R); DISPOSE(U1); {2 оператора вернут 8 байт}.

Слайд 6
Для работы с нетипизированными указателями используют процедуры:

GETMEM(,SIZE); - резервирование памяти,

FREEMEM(,SIZE);

- освобождение памяти.

SIZE - размер в байтах требуемой

или освобождаемой части кучи.

За одно обращение до 65521 байта
Var
p: pointer;
Begin
Getmem (p,8);

freemem (p,8);
End.
________

Для работы с нетипизированными указателями используют процедуры:GETMEM(,SIZE);  - резервирование	памяти,FREEMEM(,SIZE); - освобождение  памяти.SIZE  - размер

Слайд 7
Функция, которая преобразует сегмент и смещение в значение типа указатель

Ptr(Seg,Ofs:Word):

Pointer

Функция, которая возвращает адрес заданного объекта

Addr(x): pointer

________

Функция, которая преобразует сегмент и смещение в значение типа указательPtr(Seg,Ofs:Word): PointerФункция, которая возвращает адрес заданного объектаAddr(x): pointer________

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика