AnsiString delphi 2007以前的编译器(包含2007),当声明一个字符串类型时,默认为AnsiString;其最大为2GB。
字符串copy不是真正复制,只是引用增减,例如
var s1,s2:string
begin
s1:='asdf';
s2:=s1;//这里只是s1内存的引用加1
s2:=s2+'ffssdf';//这时候s1的引用减1,s2会新开一块内存存放。
end;
当一个字符串增加长度时候,如果内存附近没有连续空间,则会重新分配一块连续内存。也就是说字符串所占内存是连续的。
用sizeof取字符串的长度,永远是4;
取字符串长度应用Length;