您的位置:程序门 -> delphi -> 语言基础/算法/系统设计



[正确就结贴]关于vcl中tedit.text的字符串是从下标1开始的吗?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


[正确就结贴]关于vcl中tedit.text的字符串是从下标1开始的吗?[已结贴,结贴人:dreamnyj]
发表于:2007-04-02 09:06:52 楼主
今天第一次用delphi写一个关于字符串相关的函数。使用了edit.text
发现使用

tedit.text[下标]的形式,第0个字符等于   #0
而字符串实际的内容是从     text[1]开始的

想请教达人,只是vcl中从1开始,还是delphi的string类型就是从1开始保存数据的呢?
发表于:2007-04-02 09:11:081楼 得分:0
vcl中的string下标是从1开始的。(在bcb和delphi中都一样)
发表于:2007-04-02 09:13:322楼 得分:0
那string类型是不是从0开始?这些小的细节还真的不太曾注意过

发表于:2007-04-02 09:24:543楼 得分:0
string类型下标全部是从1开始;
短字符串下标0代表字符串长度,由于一个字节表示长度,所以最长为255
长字符串下标0,已经没什意义了
发表于:2007-04-02 09:34:344楼 得分:15
stl中的string(注意不是vcl中的string)下标是从0开始。
发表于:2007-04-02 09:45:545楼 得分:5
string对象的内存结构是:

  变量名:str(隐含的指针,即@str[1])
                                                            │
                                                            ↓
            ┌──┬──┬──┬──┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬─┐
            │????│spac│ref   │len   │││││(字符序列)│││││#0│
            └──┴──┴──┴──┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴─┘
            ????:不明,4字节。
            spac:cardinal,4字节,分配的串空间大小。
            ref   :integer,4字节,引用记数。
            len   :cardinal,4字节,实际串长,即length(str)。

http://rabbitfox.blog.sohu.com/38253374.html


快速检索

最新资讯
热门点击