Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Ссылочный тип данных
В Паскале есть возможность создания динамических переменных с помощью переменных ссылочного типа. Описание ссылочного типа:
Значением типа указатель является адрес переменной базового типа. Тип указатель занимает 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, кроме того, совместим по присваиванию с символьным массивом и строковым типом.
|