Что такое указатель? - Pascal
Формулировка задачи:
Указатель - это переменная, которая в хранит качестве своего значения
адрес байта памяти.
Что значитадрес байта памяти?
К примеру s:^integer - переменная s указатель, который в качестве своего значения хранит адрес памяти типа Integer?
В общем как правильно сказать) Может "хранит в качестве своего значения адрес памяти типа integer размером 4 байт?
Решение задачи: «Что такое указатель?»
textual
Листинг программы
var PInt : ^Integer; begin PInt := nil; //Сейчас объект PInt^ не существует. //Создаём объект PInt^. При этом, для объекта PInt^ будет выделен блок памяти и адрес младшего //байта этого блока будет записан в переменную PInt. New(PInt); //Присваиваем значение объекту PInt^. PInt^ := 10; //Работаем с PInt и PInt^. //... //... //... //Освобождаем память, выделенную для объекта PInt^. if PInt <> nil then begin Dispose(PInt); PInt := nil; //Показываем, что PInt теперь не указывает ни на какой объект. end; end.
Объяснение кода листинга программы
- Объявлена переменная PInt типа ^Integer. Это указатель на Integer.
- PInt инициализируется значением nil, что означает, что он пока не указывает на какой-либо объект.
- Вызов функции New() создает новый объект и выделяет под него память. Присваивает адрес первого байта этого объекта в PInt.
- PInt^ присваивается значение 10. PInt^ теперь содержит значение 10.
- В этом месте можно выполнять операции с PInt и PInt^.
- Вызов функции Dispose() освобождает память, выделенную для объекта, на который указывает PInt.
- Если PInt не равен nil, то есть указывает на существующий объект, то память освобождается.
- PInt снова инициализируется значением nil, чтобы показать, что он больше не указывает на какой-либо объект.
- Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д