пользователей: 21251
предметов: 10459
вопросов: 177801
Конспект-online
зарегистрируйся или войди через vk.com чтобы оставить конспект.
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

pogromirovanie:
» sooqa
Уася:
» History motherfuckers

Ссылочные типы: стандартный и пользовательский. Действия с указателями.

 Работа с динамическими величинами связана с использованием еще одного типа данных — ссылочного типа. Величины, имеющие ссылочный тип, называют указателями. Указатель содержит адрес поля в динамической памяти, хранящего величину определенного типа. Указатели — это статические величины, поэтому они требуют описания. Адрес величины — это номер первого байта поля памяти, в котором располагается величина. Для обращения к ссылочной переменной используют запись " A^ ", что означает: "идти по адресу, хранящемуся в A". Память под указатели отводится на этапе компиляции. < указатель > := < ссылочное выражение >; 
В качестве ссылочного выражения можно использовать 
-указатель; 
-ссылочную функцию (т.е. функцию, значением которой является указатель); 
- Nil. это зарезервированная константа, обозначающая пустую ссылку, т.е. ссылку, которая ни на что не указывает. Константу Nil можно присваивать указателю с любым базовым типом. 

1)Типизированные (пользовательский тип) указатели могут содержать адрес данных строго определенного типа. 
TYPE 
P=^< базовый тип > (любой тип паскаля) {помещается ^ перед индентификатором соответствующего типа} 
Plnt=^integer; 
Parr=^array[1..40] of integer; 
Var K:plnt; K-адрес целого числа 

2) Указатель, не связанный с каким-либо конкретным типом данных, называется нетипизированным указателем. Для описания используется зарезервированное слово Pointer Имя-переменной: pointer; Var Q:pointer; - совместим со всеми пользовательскими типами 
SEG(P) вернет сегментную часть адреса, по которому располагается 4-байтный указатель Р, в то время как SEG(P^) - сегмент 6-байтного участка кучи, в котором хранится число 3.14. 


27.01.2014; 07:42
хиты: 87
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2016. All Rights Reserved. помощь