11年__那些事儿 发表于 2012-8-18 10:04:40

delphi 字符串问题

最近在仔细的看字符串,有很多纠结的问题,感觉基础太差了,故来讨教,望知情人士不吝赐教,感激不尽;
问题如下
   1 AnsiString ShortString WideString在内存中的分配...
         (1) 给AnsiString类型变量分配小于256字节的内存,此时:AnString是不是可以理解为类似ShortString了呢(此时这段字符串的0位保存的是这短字符串的长度)?
         (2) 说到了AnsiString和WideString是生存期管理类型,即(0bject Pascal自动为他们分配内存和释放内存),由此联想到他类型,比如整型 实型这样的数,我声明了之后也没有对他进行内存的分配和释放,难道这也可以理解为生存期管理类型么?;
          (3)AnsiString 中说到引用计数,比如声明两个string类型S1,S2;给s1赋值(此时s1的引用计数为1);然后将s1赋值给s2(此时s1的引用计数为2);最后令S2:=s2 + 'sljflsdf';(此时s1的引用计数为1);我所理解的是这样的:第一步给s1赋值时就是说s1引用了这个地址一次 ,引用计数记为1,第二步,将s1赋给s2,s2也引用了这个地址,加起来s1的这个地址被引用了两次,故引用计数记为2第三步,s2变为了另外一个字符串,不再引用s1的地址了,所以s1的引用计数应该减去1变为1了.不知道这样理解对不对;


      2,我分别声明了三个类型的变量 str shortstring string并赋值为15.20.21个长度的字符串用sizeof length strlen三个函数去求他们的值,得出了不同的结果,这里我晕了,sizeof求的是内存大小啊?length求的是内存中字符串的长度?最后对这个strlen的用法和作用不太会,有会的指教下啊..



      
                                             在线等待中,望大家踊跃讨论啊...:time:

11年__那些事儿 发表于 2012-8-18 10:46:01

有大侠么? 继续等待ing/....

11年__那些事儿 发表于 2012-8-18 22:12:49

继续顶吧                           

11年__那些事儿 发表于 2012-8-21 15:41:40

怎么老是没人看呢??
页: [1]
查看完整版本: delphi 字符串问题