B
beta
Unregistered / Unconfirmed
GUEST, unregistred user!
wjlsmail:
要是你认清楚其实 string 也是指针,那么你就会把第一种情况归到第三种情况里面,
那么你对这个问题就认识清楚了:)
pipo:
我的理解是这样的:
存放一个字符串当然是需要空间的,比如你先给一个字符串赋初值为 'Hello World!',
此时他占用了 13 个字节(12 字节的内容,1 字节的结束符 #0,我们暂时不考虑前面)
而当你又对其进行操作的时候,比如改为 'Hello',现在它的 Length 变了,但是它的
分配长度会变吗?我不知道,不过我知道在某些情况下,不会。否则可能会反复地对其
占用的空间重新分配长度,这会降低效率,Delphi 不会这样干的。它应该只在必要的
时候才对其空间进行 ReAlloc,因此其“分配的大小”和“长度”没有直接的联系。于
是为了在释放的时候知道应该释放多少字节,就有了这个“分配大小”字段。
以上纯属推测,望之情富翁指正。
要是你认清楚其实 string 也是指针,那么你就会把第一种情况归到第三种情况里面,
那么你对这个问题就认识清楚了:)
pipo:
我的理解是这样的:
存放一个字符串当然是需要空间的,比如你先给一个字符串赋初值为 'Hello World!',
此时他占用了 13 个字节(12 字节的内容,1 字节的结束符 #0,我们暂时不考虑前面)
而当你又对其进行操作的时候,比如改为 'Hello',现在它的 Length 变了,但是它的
分配长度会变吗?我不知道,不过我知道在某些情况下,不会。否则可能会反复地对其
占用的空间重新分配长度,这会降低效率,Delphi 不会这样干的。它应该只在必要的
时候才对其空间进行 ReAlloc,因此其“分配的大小”和“长度”没有直接的联系。于
是为了在释放的时候知道应该释放多少字节,就有了这个“分配大小”字段。
以上纯属推测,望之情富翁指正。