鱼C论坛

 找回密码
 立即注册
查看: 2653|回复: 3

delphi 字符串问题

[复制链接]
发表于 2012-8-18 10:04:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
最近在仔细的看字符串,有很多纠结的问题,感觉基础太差了,故来讨教,望知情人士不吝赐教,感激不尽;
问题如下
   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[5] shortstring string并赋值为15.20.21个长度的字符串  用sizeof length strlen三个函数去求他们的值,得出了不同的结果,这里我晕了,sizeof求的是内存大小啊?length求的是内存中字符串的长度?  最后对这个strlen的用法和作用不太会,有会的指教下啊..



      
                                             在线等待中,望大家踊跃讨论啊...:time:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-18 10:46:01 | 显示全部楼层
有大侠么? 继续等待ing/....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-18 22:12:49 | 显示全部楼层
继续顶吧                           
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-8-21 15:41:40 | 显示全部楼层
怎么老是没人看呢??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 14:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表