Указатели без типа

Турбо Паскаль содержит стандартный ссылочный тип, который позволяет не конкретизировать базового типа и считается совместимым со всеми ссылочными типами.

Var <имя_указателя>: pointer;

Работа с ними подразумевает их преобразование в указатели, ссылающиеся на значения конкретного типа, например, при необходимости организовать список, состоящий из записей различных типов.

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

GetMem (<указатель>,<размер>);

FreeMem (<указатель>,<размер>);

Размер участка памяти указывается в байтах, обычно с применением функции SizeOf:

GetMem (Ptr,SizeOf(R));

Для работы с нетипизированными указателями используются дополнительные функции, здесь не рассматриваемые.

Контрольные вопросы

1. Что означает термин «статические переменные»?

2. Как производится обращение к статическим переменным?

3. Что означает термин «динамические переменные»?

4. Как производится обращение к динамическим переменным?

5. В каких случаях используются динамические переменные?

6. Что такое «указатели»?

7. Для каких целей используются указатели?

8. Что такое «пустой указатель», и как он обозначается?

9. Для чего используется операция взятия адреса?

10. Что такое «разыменование»?

11. При каком значении указателя его нельзя разыменовывать?

12. Как выглядит процедура создания динамической переменной?

13. Что происходит при выполнении процедуры создания динамической переменной?

14. Что можно определить с помощью функции MaxAvail?

15. Как выглядит процедура уничтожения динамической переменной?

16. Что происходит при выполнении процедуры уничтожения динамической переменной?

17. С помощью какой функции можно определить максимальный размер непрерывного участка свободной памяти?

18. Какой тип совместим со всеми ссылочными типами?

Глава 8. Низкоуровневые возможности Паскаля


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: