русс | укр

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

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

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

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


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

Указатели


Дата добавления: 2015-09-15; просмотров: 610; Нарушение авторских прав


Указатели и динамическая память

Динамическая память (куча)– это оперативная память ПК, предоставляемая программе при ее работе. Динамическое размещение данных означает использование динамической памяти непосредственно при работе программы. В отличие от этого статическое размещение осуществляется компилятором Delphi в процессе компиляции программы. При динамическом размещении заранее не известны ни тип, ни количество размещаемых данных.

Статическими программными объектами называются объекты фиксированного размера, память под которые резервируется на все время выполнения программы. Ссылки на статические объекты (доступ) осуществляются по имени – так называемый непосредственный доступ. При трансляции имя заменяется адресом данного объекта, т.е. номером первой ячейки памяти, отведенной для объекта.

Динамическими программными объектами называются объекты, возникающие, исчезающие, изменяющие свои размеры во время выполнения программы.

 

Указатели

Оперативная память ПК представляет собой совокупность ячеек для хранения информации – байтов, каждый из которых имеет собственный номер. Эти номера называются адресами, они позволяют обращаться к любому байту памяти. Delphi предоставляет в распоряжение программиста гибкое средство управления динамической памятью – так называемые указатели. Указатель – это переменная, которая в качестве своего значения содержит адрес байта памяти.

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

Type

PString = ^String;//тип-указатель на строку

TMas = array[1..100] of word;//статический тип-массив

PMas = ^TMas; //тип-указатель на массив



 

Var

StPtr : PString;//переменная-указатель на строку

MasPtr : PMas;//переменная-указатель на массив

Mas : TMas;//статический массив

StPtr1 : ^String;//переменная-указатель на строку

P: Pointer;

p1: ^Integer;//переменная-указатель на целое число

p2: ^Real;//переменная-указатель на вещественное число

 

В Delphi можно объявлять указатель и не связывать его при этом с каким-либо конкретным типом данных. Для этого служит стандартный тип Pointer. Указатели такого рода называются нетипизированными. С помощью таких указателей удобно размещать данные, структура и тип которых меняются в ходе работы программы.

В Delphi можно передавать значения только между указателями, связанными с одним и тем же типом данных. Нетипизированные указатели совместимы с любыми типизированными. За согласованностью типов следит компилятор.

 

Например,

Var

P1, P2 : ^Integer;

P3 : ^Real;

P : Pointer;

 

Begin

.....

P1 := P2;

P3 := P1; //ОШИБКА! – Присваивание не допустимо

P := P1;

P := P3;

.....

End.

 

Над ссылочными переменными определены только две операции сравнения: равно (=) и неравно (<>).

 



<== предыдущая лекция | следующая лекция ==>
Формообразующие движения | Процедуры и функции для работы с динамической памятью


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


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

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

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


 


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

 
 

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

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