Delphi String常识

Delphi中String分为Short String和Long String。

所谓Short String是与标准PASCAL语言一致的String, 即一个计数的字符数组, 其实际结构为str[0]保存字符串长度, 从str[1]到str[Length(str)]为字符串。

而Long String是从delphi 2.0开始引入的,在所有的32位版本delphi中默认都使用Long String做为String。Long String的容量只受有限内存的限制,在32位系统中最多可有4G,如果采用Intel的页面扩展技术还可以更大,不过通常这已经没有什么意义了,另外Long String是有引用计数的。

Long String 在内存中的结构近似一个指针,其所指向的即字符串的第一个字符,这正动态内存管理需要的,也使得实现“写时复制”变得非常简单。

如何使用Short String?

var
	ss: ShortString;
如何使用Long String?
var
  s: String;
什么是AnsiString?
AnsiString即Long String也。如果用C++Builder对于AnsiString应该很熟悉了。

如何验证呢?
跟一下下面这段代码即可。

var
  ss: ShortString;
  s,s2: string;
begin
  ss := 'shot!';
  s := 'the crazy string!';
  s2 := s;
  s2 := s2+'faint!';
  ShowMessage(s);
  ShowMessage(s2);
  ShowMessage(ss);
end;