导航

长度和分配

Posted on 2010-08-12 10:40  beeone  阅读(216)  评论(0编辑  收藏  举报

  第一次声明AnsiString时,它是没有长度的,因此在字符串中就没有为字符分配空间。为了对字符串分配空间,用一行字母或另一个字符串对它进行赋值,或者用SetLength()过程,就像下面所列出来的:

   Var

  S:String;            //字符初始化时,没有长度。

   begin

  S:=‘Doh!’      //为字符串的字母分配足够的空间

      {或者}

     S:= OtherString ;// 增加OtherString的引用计数,

                                 //{假定OtherString指向一个合法的字符串}

     {或者}

     SetLength(S,4);//分配4个字符的空间

end;

能像数组一样对字符串进行索引,但注意索引不能超出字符串的长度,例如:下面代码会引起一个错误;

var

  S:Stirng;

begin

   S[1] :='a';   //不能工作,因为S没有被分配空间

end;

然而,代码改成如下,就能正常工作了;

var

  S: String;

begin

  SetLength(S,1);

  S[1] :='a';   //现在S有足够空间来容纳字符

end;