to 放飞,
其实delphi默认的string是一个指针,不过string有几种不同实现方式,shortstring就不是一个指针(准确说,是几种不同的string),shortstring相当于turbo pascal的string。
string类型并不是零终止字符串,特别是它可以中间加入#0,因为string类型除了保存字符串内容之外,还保存了长度等信息,而且这是通过增加附加字段来实现的。pchar则一般是零终止字符串。
turbo pascal经典的string同样也是,不过它是固定长度的,最长是255字节,实际上第一个字节是length,所以实际占用的是256字节。
pchar类型和string类型的变量可以互相转换,只需用普通的类型转换就行了。
另外,string的下标开始是1,如果用pchar,由于是指针,所以只能0开始,因为它是首址+偏移这样来计算的。