字符串索引为何从1开始的?

chenyq2008 2008-09-27 07:48:43
如题
...全文
592 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
DreamMan81 2008-09-27
  • 打赏
  • 举报
回复
这是delphi编译器认定的没什么好说的,记住就得 了
panrongzeng 2008-09-27
  • 打赏
  • 举报
回复
學習了呢
lihuasoft 2008-09-27
  • 打赏
  • 举报
回复
哦,忘记说了,对于短字符串,一楼是正确的;而对于长字符串,却不仅仅存储在String[0]里,因为一个字节的内存只能最大有256个有效数字。对于长字符串,从string[1]后4个字节是长度。
lihuasoft 2008-09-27
  • 打赏
  • 举报
回复

语法规则而已。
我来验证一下楼上是正确的


procedure TForm1.Button1Click(Sender: TObject);
var
S1: string[255];{短字符串}
S2: string;{长字符串}
P: PByte;
begin
S1 := StringofChar(#32, 255);
Showmessage(InttoStr(Byte(S1[0])));

S2 := InttoStr(Handle)+FormatDatetime('YYYYMMDDhhnnsszzz',Now);
Showmessage(InttoStr(Length(S2)));
integer(P) := integer(@S2[1])-4;
Showmessage(InttoStr(P^));
end;
喝口水 2008-09-27
  • 打赏
  • 举报
回复
因为str[0]里面存放的是字符串长度

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧