string 类型变量赋值后第[0]号下标值是什么?(10分)

  • 主题发起人 主题发起人 hixiaopeng
  • 开始时间 开始时间
H

hixiaopeng

Unregistered / Unconfirmed
GUEST, unregistred user!
MyString:string;
MyString:='hello';
对ShortString类型来说,MyString[0]是字符串'hello'的长度标识,并且长度范围为0至255.
而编译器默认将string解释为AnsiString,MyString[1]的值是'h',
那样的话MyString[0]和MyString的值又是什么呢,或者说代表什么呢?
谢谢
 
其实如果写成MyString[0]是错的。

但是我想如果真的可以的的话,MyString[0]就和pchar指向一个空结束的指针差不多。
 
也就是说相当于把C语言中的字符串结束符'/0'提到
了前面来存放?因此真正有效的字符串就要从MyString[1]开始算起?
 
>>也就是说相当于把C语言中的字符串结束符'/0'提到了前面来存放?
这是不同的存放方式,直接保存长度,所以不用C式的结束标记了
 
在delphi的帮助中只提到了ShortString类型变量的第[0]号下标值是赋给该变量
的字符串的长度,而对AnsiString,只说在堆中有两个32位区域,一个32位区用来指示该
字符串的引用计数,另一个32位区用来指示该字符串的长度,并没有说明第[0]号下标
内容是什么,难道对于AnsiString本来就没有第[0]号下标这种说法?请教,谢谢
 
string[0]是字符串的长度
 
楼上的意思是说string[0]的值是那两个32位区中表示字符串长度那个区的值?
 
后退
顶部