Обычно переменная хранит
некоторые данные. Однако помимо обычных, существуют переменные, которые ссылаются
на другие переменные. Такие переменные называются указателями. Указатель — это
переменная, значением которой является адрес другой переменной или структуры
данных. Графически указатель может быть изображен так, как на рис. 8.5.
Рис. 8.5.
Переменная-указатель
Указатель, как и любая
другая переменная программы, должен быть объявлен в разделе объявления переменных.
В общем виде объявление указателя выглядит следующим образом:
Имя: ^ Тил;
где:
имя — имя переменной-указателя;
Тип — тип переменной, на которую
указывает переменная-указатель;
значок ^ показывает,
что объявляемая переменная является указателем.
Приведем примеры объявления
указателей:
p1:
^integer; р2: ^real;
В приведенном примере
переменная p1 — это указатель на переменную типа integer, a p2 — указатель на
переменную типа real.
Тип переменной, на
которую ссылается указатель, называют типом указателя. Например, если в программе
объявлен указатель р: ^integer, то говорят: ^р — указатель целого типа"
или "р — это указатель на целое".
В начале работы программы
переменная-указатель "ни на что не указывает". В этом случае говорят,
что значение указателя равно NIL. Зарезервированное слово NIL соответствует
значению указателя, который ни на что не указывает.
Идентификатор NIL можно
использовать в инструкциях присваивания и в условиях. Например, если переменные
pi и р2 объявлены как указатели, то инструкция
p1
:= NIL;
устанавливает значение
переменной, а инструкция if р2 = NILthen
ShowMessage('Указатель р2 не инициализирован!');
проверяет, инициализирован
ли указатель р2.
Указателю можно присвоить
значение — адрес переменной соответствующего типа (в тексте программы адрес
переменной — это имя переменной, перед которым стоит оператор @). Ниже приведена
инструкция, после выполнения которой переменная р будет содержать адрес переменной
п.
р
:= @n;
Помимо адреса переменной,
указателю можно присвоить значение другого указателя при условии, что они являются
указателями на переменную одного типа. Например, если переменные pi и р2 являются
указателями типа integer, то в результате выполнения инструкции
p2
:= p1;
переменные pi и р2
указывают на одну и ту же переменную.
Указатель можно использовать
для доступа к переменной, адрес которой содержит указатель. Например, если р
указывает на переменную 1, то в результате выполнения инструкции
р^
: = 5;
значение переменной
i будет равно пяти. В приведенном примере значок ^показывает, что
значение пять присваивается переменной, на которую указывает переменная-указатель.
Знаете ли Вы, что такое "Большой Взрыв"? Согласно рупору релятивистской идеологии Википедии "Большой взрыв (англ. Big Bang) - это космологическая модель, описывающая раннее развитие Вселенной, а именно - начало расширения Вселенной, перед которым Вселенная находилась в сингулярном состоянии. Обычно сейчас автоматически сочетают теорию Большого взрыва и модель горячей Вселенной, но эти концепции независимы и исторически существовало также представление о холодной начальной Вселенной вблизи Большого взрыва. Именно сочетание теории Большого взрыва с теорией горячей Вселенной, подкрепляемое существованием реликтового излучения..." В этой тираде количество нонсенсов (бессмыслиц) больше, чем количество предложений, иначе просто трудно запутать сознание обывателя до такой степени, чтобы он поверил в эту ахинею. На самом деле взорваться что-либо может только в уже имеющемся пространстве. Без этого никакого взрыва в принципе быть не может, так как "взрыв" - понятие, применимое только внутри уже имеющегося пространства. А раз так, то есть, если пространство вселенной уже было до БВ, то БВ не может быть началом Вселенной в принципе. Это во-первых. Во-вторых, Вселенная - это не обычный конечный объект с границами, это сама бесконечность во времени и пространстве. У нее нет начала и конца, а также пространственных границ уже по ее определению: она есть всё (потому и называется Вселенной). В третьих, фраза "представление о холодной начальной Вселенной вблизи Большого взрыва" тоже есть сплошной нонсенс. Что могло быть "вблизи Большого взрыва", если самой Вселенной там еще не было? Подробнее читайте в FAQ по эфирной физике.