Если вы с помощью директивы $X разрешаете расширенный син-
таксис, то символьный массив с нулевой базой совместим с типом
PChar. Это означает, что там, где предполагается использование
типа PChar, может использоваться символьный массив с нулевой ба-
зой. Когда символьный массив используется вместо значения PChar,
компилятор преобразует символьный массив в указатель-константу,
значение которой соответствует адресу первого элемента массива.
Например:
var
A: array[0..63] of Char;
P: PChar;
.
.
.
begin
P := A;
PrintStr(A);
PrintStr(P);
end;
Благодаря оператору присваивания P теперь указывает на пер-
вый элемент массива A, поэтому PrintStr вызывается дважды с одним
и тем же значением.
Вы можете инициализировать типизованную константу, имеющую
тип символьного массива с нулевой базой, с помощью строкового ли-
терала, имеющего меньшую длину, чем размер массива. Оставшиеся
символы устанавливаются в значение NULL (#0), и массив будет со-
держать строку с завершающим нулем.
type
TFileName = array[0..79] of Char;
const
FileNameBuf: TfileName = 'TEST.PAS';
FileNamePtr: PCahr = FileNameBuf;