Руководство по языку B.Pascal 7

       

Символьные указатели и символьные массивы


Если вы с помощью директивы $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;



Содержание раздела