Презентация на тему: УКАЗАТЕЛИ

УКАЗАТЕЛИ
Статические и динамические данные
Ссылочный тип – специальный тип для работы с динамическими объектами
Порождение динамического объекта
Типизация указателей
Значение динамического объекта
Операции с указателями: c равнение и присваивание
Одинаковые указатели
УКАЗАТЕЛИ
1/9
Средняя оценка: 4.1/5 (всего оценок: 69)
Код скопирован в буфер обмена
Скачать (263 Кб)
1

Первый слайд презентации: УКАЗАТЕЛИ

Изображение слайда
2

Слайд 2: Статические и динамические данные

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

Изображение слайда
3

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

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

Изображение слайда
4

Слайд 4: Порождение динамического объекта

4 Порождение динамического объекта Если необходимо в качестве значения указателя принять ссылку, которая не связывает с данным указателем никакой объект (пустую), то оно задается служебным словом nil и принадлежит любому ссылочному типу Описание var ptr: ^T вводит в употребление статическую переменную ptr типа указатель (компилятор отводит место в памяти, необходимое для размещения ссылки), но программный объект типа T в употребление не вводится. Описание только подразумевает то, что значением переменной ptr могут быть ссылки на такие объекты Для порождения самого динамического объекта используется процедура new(ptr) В результате в особой области памяти ( Heap memory – «куча»)выделяется место под размещение объекта заданного типа, а адрес начала выделенного куска памяти присваивается указателю ВАЖНО : указатели ТИПИЗИРОВАННЫЕ! Существует особый, бестиповый указатель: pointer

Изображение слайда
5

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

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

Изображение слайда
6

Слайд 6: Значение динамического объекта

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^ - сам массив, то есть содержимое, находящееся по заданному адресу

Изображение слайда
7

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

7 Операции с указателями: c равнение и присваивание Сравнивать можно только однотипные указатели, выполнять присваивания тоже! var q,p:^integer; t:^char; begin new(p); p^:=5; q:=p; … В данном случае p и q указывают на один и тот же программный объект и p=q 5 p q

Изображение слайда
8

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

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

Изображение слайда
9

Последний слайд презентации: УКАЗАТЕЛИ

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

Изображение слайда