Что такое указатель? - 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.

Объяснение кода листинга программы

  1. Объявлена переменная PInt типа ^Integer. Это указатель на Integer.
  2. PInt инициализируется значением nil, что означает, что он пока не указывает на какой-либо объект.
  3. Вызов функции New() создает новый объект и выделяет под него память. Присваивает адрес первого байта этого объекта в PInt.
  4. PInt^ присваивается значение 10. PInt^ теперь содержит значение 10.
  5. В этом месте можно выполнять операции с PInt и PInt^.
  6. Вызов функции Dispose() освобождает память, выделенную для объекта, на который указывает PInt.
  7. Если PInt не равен nil, то есть указывает на существующий объект, то память освобождается.
  8. PInt снова инициализируется значением nil, чтобы показать, что он больше не указывает на какой-либо объект.
  9. Код завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы