3.2.7 PChar - строки завершённые нулём |
Вверх Предыдущий Следующий |
Free Pascal поддерживает реализацию типа PChar как в Delphi. PChar определен как указатель на тип Char, но позволяет дополнительные операции. Тип PChar лучше всего воспринимать как Pascal-эквивалент для завершенных нулем строк из языка Cи, то есть переменная типа Pchar это указатель, который указывает на массив символов завершенных нулем (#0). Free Pascal поддерживает инициализацию типизированных констант PChar, или прямого присвоения. Следующие части кода эквивалентны: program one; var P : PChar; begin P := 'Это заканчивающаяся нулём строка.'; WriteLn (P); end. Приведет к тому же, что и следующий код program two; const P : PChar = 'Это заканчивающаяся нулём строка.'; begin WriteLn (P); end. Эти примеры также показывают, что возможно записать содержание строки в файл типа Text. Модуль strings содержит процедуры и функции, для манипуляции типом PChar как в стандартной библиотеке C. Так как PChar эквивалентен указателю на переменную типа Char, также возможно сделать следующее: Program three; Var S : String[30]; P : PChar; begin S := 'Это заканчивающаяся нулём строка.'#0; P := @S[1]; WriteLn (P); end. Этот код приведет к тому же результату что и предыдущие два примера. Завершенные нулем строки не могут быть объединены как нормальные Pascal строки. Если нужно объединить две PChar строки; должны использоваться ответствующие функции из модуля strings. Однако, возможно использовать адресную арифметику с указателями. Операторы + и - могут использоваться для выполнения операций над указателями PChar. В таблице (3.5), P и Q имеют тип PChar, а I имеет тип LongInt. Таблица 3.5: Адресная арифметика с указателями PChar
|