Другие языки программирования и технологии

delphi, списки

Здравствуйте!
Только начал изучать в Delphi динамические списки
подскажите что означает знак ^ в этой структуре:

Der=^Elem;
Elem=Record
Fam:String[15];
Adr:String[20];
Next:Der
End;
Смотря где этот символ находится. В вашем случае он означает, что тип Der является указателем на тип Elem.

Если же такой символ будет находится после имени переменной типа Der, то это будет разименование указателя и позволит получить доступ к полям записи, на которую указывает эта переменная.

var SomePtr : Der;
....

SomePtr^.Fam := 'Пупкин';

SomeStr := SomePtr^.Adr;

> и еще что такое в таких структурах NIL?

Значение "пустого" указателя, т. е. указателя, который ни на что не указывает и в то же время его значение не является "мусором".
Евгений Кантемиров
Евгений Кантемиров
59 614
Лучший ответ
Символ ^ - означает указатель.
Т. е. переменная типа Der хранит не саму переменную, а её адрес в памяти.

В Паскале/Делфи описание переменных всегда должно быть раньше их использования.
Только для указателя на запись делается исключение.

NIL - это указатель на пустое место.
Паскаль, при начале работы программы, не обнуляет переменные.
Они ссылаются на произвольное место памяти.
По принципу: где создались, то и взяли.. .
Поэтому, при начале работы программы, для переменных всегда нужно задавать какие-то начальные данные.
Числу - число, строке - строку [в том числе и пустую] , а указателю - значение NIL.

Старый компьютерный анакдот:
-- Бачишь, як Паскали НУЛЬ кличуть?
-- Як?
-- НИ-И-ИЛ!
-- Поубиваль бы хадов...
NIL = Nihil - пустой указатель, никуда не указывает.