3.2.8 PChar类型-空终止字符串
免费Pascal支持PChar类型类型的Delphi实现的PChar类型被定义为一个指针指向一个字符类型但允许额外的操作PChar类型类型是可以理解的最好的Pascal相当于一个C-风格的以空结尾的字符串即一个变量的类型PChar类型是一个指针指向一个数组类型的字符这是一个空字符结束#0免费Pascal支持初始化PChar类型类型的常量或直接转让例如下面的代码片段是相同的
program one;
var P : PChar;
begin
P := This is a null-terminated string.;
WriteLn (P);
end.
结果相同于
program two;
const P : PChar = This is a null-terminated string.;
begin
WriteLn (P);
end.
这些例子也表明这是可能的内容写入到一个文件中的字符串类型的 文本的字符串单元包含程序和PChar类型的类型进行操作的功能在标准C库由于它是相当于一个指针的类型的字符变量但也可以执行以下操作
Program three;
Var S : String[30];
P : PChar;
begin
S := This is a null-terminated string.#0;
P := @S[1];
WriteLn (P);
end.
与前两个例子中这将有同样的结果NULL结尾的字符串不能正常Pascal字符串添加如果两个PChar类型字符串必须被连接起来;从单元字符串的功能必须被使用
然而这是可以做一些指针的算术运算运营商+和-可以用来操作PChar类型的指针表3.5P 和 Q的 类型PChar类型和我的类型Longint型
表3.5PChar类型指针的算术运算
|
作业
|
导致
|
|
P + I
|
I 添加到P所指向的地址
|
|
I + P
|
I 添加到P所指向的地址
|
|
P - I
|
基体上I从P所指向的地址
|
|
P - Q
|
为一个整数返回2个地址之间的距离
或在P 和 Q 之间的字符的数量
|
