Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Ссылочный тип данных






 

В Паскале есть возможность создания динамических переменных с помощью переменных ссылочного типа.

Описание ссылочного типа:

 
 

 


Значением типа указатель является адрес переменной базового типа. Тип указатель занимает 4 байта (сегмент и смещение).

Пример 1. Описание переменных ссылочных типов.

Type t_ptr_real=^real;

t_vect=array[1..100] of char;

Var p1, p2: t_ptr_real; {указатель на вещественное число}

p_vect: ^t_vect; {указатель на символьный массив}

Описанные переменные-указатели являются статическими, каждая из них занимает 4 байта. При описании переменные не инициализируются, поэтому их значения считаются неопределенными.

В ТР предопределен ссылочный тип pointer - нетипизованный указатель. Его значением является адрес ячейки памяти.

Начиная с версии ТР7, в ТР реализован тип Pchar = ^Char.

Инициализация переменной ссылочного типа может быть выполнена с помощью оператора присваивания или с помощью подпрограмм выделения памяти.

Ссылочные типы совместимы по присваиванию, если их базовые типы тождественны или один из них является нетипизованным указателем. Существует предопределенная константа nil: pointer (пустой указатель). После присваивания р: =nil указатель p не ссылается ни на какую область памяти. Если переменная р1 уже инициализирована и р1¹ nil, то после присваивания р2: =р1 обе переменные ссылаются на одну и ту же область памяти.

Тип Pchar, кроме того, совместим по присваиванию с символьным массивом и строковым типом.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.