大家对有object pascal的字符串可能您经常用AnsiString其他的字符串一般很少用到。
下面举几个字符串的几个类型:
AnsiSring 这是Pascal的默认类型。其长度没有限制的。并且字符串结束是以null结尾。也就是以'/0'结尾。
ShortSring是为了与Delphi以前的版本保持兼容性。其长度限制在255个字符之内的。
WideSring与AnsiString类似,但它是由WideChar字符组成的。
PChar指向null结束的字符串的指针。类似于c里面的char*或者lpstr.
PAnsiChar指向以null结束的AnisChar结束的字符串指针。
PWideChar指向以null结束的WideChar的字符串的指针。
缺省情况下是AnisSring的类型:
var
S:String;
也可以有编译器开关$H来将String类型定义为ShortString类型:例子
var
{$H-}
s1:=string;//s1是shortstring类型
{$H+}
s2:=string;//s2是sring类型
但是当特定指定的字符串的长度,长度要小于255的时候,其用{$H}的时候总是AnsiSring
例子:
var
s:string[254];
下面我要讲讲这些类型的各自用法:
1、AnisSring类型
它是动态分配的并且有自动回收功能。这个功能被称为生存期自管理功能。不用象c中的中间结果
由于AnisSring类型的字符串以null结尾的,因此可以与win32api兼容。实际上AnisSring是
指向在堆栈中的字符串结构的指针。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-991242/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10752043/viewspace-991242/