русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ссылочный тип данных и адресация


Дата добавления: 2014-11-28; просмотров: 829; Нарушение авторских прав


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

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

Минимальной единицей памяти, которая может быть выделена под переменную или инструкцию программы, является байт. Каждый байт оперативной памяти имеет свой порядковый номер, называемый адресом.

Различные данные могут занимать в памяти один или несколько байт. Участок памяти, в котором хранится одно значение данных (один элемент данных), называют ячейкой памяти. Адресом ячейки является адрес её самого первого байта. Нумерация адресов начинается с нуля.

Структура объявления ссылочного типа данных выглядит следующим образом:

type

<имя типа ссылочной переменной> = ^<базовый тип д.п.>;

var



<имя д.п.> [, <имя д.п.>, ...] : <имя типа ссылочной переменной>;

<имя д.п.> [, <имя д.п.>, ...] : ^ <базовый тип д.п.> ;

Здесь д.п. – динамическая переменная. Базовым называют стандартный или заранее описанный тип данных.

Например, в разделе описаний программы (фрагмент приведен ниже) её строки описывают ссылочные типы и ссылочные переменные – указатели.

const

max = 150;

type

R = ^integer ;

T = ^real ;

A_mas = ^massiv;

massiv = array [1..max] of word;

var



a, b : R;

c : ^real;

d, f, g : T;

h, k : pointer;

m, n : A_mas;

Здесь R, T и A_mas – имена типов ссылочных (динамических) переменных целого (R) и вещественного (T) типов и типа массива (A_mas);

a и b – типизированные указатели (ссылочные переменные) на динамические переменные типа R, т.е. целого типа;

c, d, f и g – типизированные указатели на динамические переменные вещественного типа. Указатель "c" задан только в разделе переменных, а указатели d, f и g – через имя типа T;

m и n – типизированные указатели на динамические данные типа массива. При этом следует обратить внимание на то, что тип указателя massiv определён до определения базового типа array.

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

Указатели h и k являются нетипизированными, так как описаны словом pointer, и могут ссылаться на данные любого типа.

В объявлениях ссылочных типов после символа "^" может стоять только простое имя типа, например, real, integer, string, но не string [15] или array[1..7] of integer.

В случае сложных имён типов используют переопределение типов, то есть сначала определяют одним словом тип, являющийся сложным, например, массивом, а затем этот тип используют с символом "^".



<== предыдущая лекция | следующая лекция ==>
Понятия динамических переменных | Создание и удаление динамических переменных


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.12 сек.