J
justinfoo
Unregistered / Unconfirmed
GUEST, unregistred user!
请问:ShortString类型的变量的第一个字节存放的是该变量的实际长度。例如:
var
shortStr: ShortString;
begin
shortStr:= 'I have';
ShowMessage(shortStr[0])
{ 显示的是 '-',因为S[0]存放的是#6,即共有6个字符 }
end;
那么AnsiString类型的变量的第一个字节存放的又是什么东西呢?例如:
var
ansiStr: AnsiString;
vWhatIsStored: Variant;
begin
SetLength(ansiStr, 6);
ansiStr:= 'I have';
vWhatIsStored:= ansiStr[0]
{ 事实上,此行编译报错:Element 0 inaccessible - use 'Length' or 'SetLength' }
ShowMessage(VarToStr(vWhatIsStored))
{ 假设编译不报错,显示的会是什么呢?或者说,存放的又是什么呢?莫非根本就没开辟ansiStr[0]这个内存区域?高手赐教! }
end;
var
shortStr: ShortString;
begin
shortStr:= 'I have';
ShowMessage(shortStr[0])
{ 显示的是 '-',因为S[0]存放的是#6,即共有6个字符 }
end;
那么AnsiString类型的变量的第一个字节存放的又是什么东西呢?例如:
var
ansiStr: AnsiString;
vWhatIsStored: Variant;
begin
SetLength(ansiStr, 6);
ansiStr:= 'I have';
vWhatIsStored:= ansiStr[0]
{ 事实上,此行编译报错:Element 0 inaccessible - use 'Length' or 'SetLength' }
ShowMessage(VarToStr(vWhatIsStored))
{ 假设编译不报错,显示的会是什么呢?或者说,存放的又是什么呢?莫非根本就没开辟ansiStr[0]这个内存区域?高手赐教! }
end;