Разделы презентаций


УКАЗАТЕЛИ

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

Слайды и текст этой презентации

Слайд 1УКАЗАТЕЛИ

УКАЗАТЕЛИ

Слайд 2Статические и динамические данные
Статические программные объекты – порождаются перед выполнением

программы, не меняют свои размеры в течение всего времени своего

существования

Динамические программные объекты возникают во время выполнения программы; их размер определяется (или изменяется) при выполнении программы
Статические и динамические данныеСтатические программные объекты – порождаются перед выполнением программы, не меняют свои размеры в течение

Слайд 3Ссылочный тип – специальный тип для работы с динамическими объектами
Значение

типа – ссылка на какой-либо программный объект, по которой осуществляется

непосредственный доступ к этому объекту
type
<имя_ссылочного_типа>=^<имя_типа>;
<имя_типа> – имя стандартного, либо ранее описанного типа данных
Пример:
const n=15;
type TSequence = array[1..n] of real;
Treference = ^TSequence;
var p: ^integer;
q: ^char;
ptr: ^Tsequence;

Визуально:

Ссылочный тип – специальный тип для работы с динамическими объектамиЗначение типа – ссылка на какой-либо программный объект,

Слайд 4Порождение динамического объекта
Если необходимо в качестве значения указателя принять ссылку,

которая не связывает с данным указателем никакой объект (пустую), то

оно задается служебным словом nil и принадлежит любому ссылочному типу

Описание
var ptr: ^T
вводит в употребление статическую переменную ptr типа указатель (компилятор отводит место в памяти, необходимое для размещения ссылки), но программный объект типа T в употребление не вводится. Описание только подразумевает то, что значением переменной ptr могут быть ссылки на такие объекты

Для порождения самого динамического объекта используется процедура new(ptr)

В результате в особой области памяти (Heap memory – «куча»)выделяется место под размещение объекта заданного типа, а адрес начала выделенного куска памяти присваивается указателю

ВАЖНО: указатели ТИПИЗИРОВАННЫЕ!

Существует особый, бестиповый указатель: pointer

Порождение динамического объектаЕсли необходимо в качестве значения указателя принять ссылку, которая не связывает с данным указателем никакой

Слайд 5Типизация указателей
P1

Типизация указателейP1

Слайд 6Значение динамического объекта
const n=10;
type Tsequence = array[1..n]of real;
var ptr: ^Tsequence;
q:^char;
i:integer;
begin

new(ptr);
for i:=1 to n do
read(ptr^[i]);
readln;
new(q);
q^:=‘@’;


ВАЖНО: ptr

– адрес массива в куче, а ptr^ - сам массив, то есть содержимое, находящееся по заданному адресу




Значение динамического объектаconst n=10;type Tsequence = array[1..n]of real;var ptr: ^Tsequence;		q:^char;		i:integer;begin new(ptr);	 for i:=1 to n do		read(ptr^[i]);	 readln;

Слайд 7Операции с указателями: cравнение и присваивание

Сравнивать можно только однотипные

указатели, выполнять присваивания тоже!
var q,p:^integer;
t:^char;
begin
new(p); p^:=5;
q:=p;

В данном случае

p и q указывают на один и тот же программный объект и p=q


Операции с указателями:  cравнение и присваивание 	Сравнивать можно только однотипные указатели, выполнять присваивания тоже!var q,p:^integer;		t:^char;begin new(p);

Слайд 8Одинаковые указатели

Одинаковые указатели

Слайд 9Освобождение памяти:






dispose(p);
Память из-под динамического объекта освобождается и помещается в список

свободных участков; значение p становится неопределенным. При этом сама переменная

продолжает существовать
Освобождение памяти:dispose(p);Память из-под динамического объекта освобождается и помещается в список свободных участков; значение p становится неопределенным. При

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика