http://www.delphi2007.net/DelphiVCL/html/delphi_20061224123020155.html
procedure TForm1.Button1Click(Sender: TObject);
var s: string[8] ;
begin
s[0] := 'a' ;
s[1] := 'b' ;
s[2] := 'c' ;
showmessage(s);
end;
procedure TForm1.Button1Click(Sender: TObject);
var s: string[8] ;
begin
s[0] := 'a' ;
s[1] := 'b' ;
s[2] := 'c' ;
s[3] := 'd' ;
showmessage(s);
end;
初识DELPHI,有点晕
好问题。可能初学DELPHI的都会忽略这个里面的很多内涵。
var s: string[8] ;
其内容是从s[1]开始的。
s[0]是字符串长度值。
1、S[0] 等同于SetLength(S, Ord(S[0]) 在你的例子中相当于SetLength(S, 97)
2、由于你没有对S做初始化,所以你的SHOWMESSAGE(S)会是这样的结果
bcd+随机的乱字符,并且显示的字符串长度是97
不要把string 当char str[x];
用
var s: shortString ;
begin
s[0] := 'a' ;
s[1] := 'b' ;
showmessage(s) ;
caption := inttostr(length(s)) ;
end
结果相同 长度为97 Ord('a')
String 结构:AllocationSize|RefCount|Length|B|C|D|#0
ShortString 结构:|Length|B|C|D
不管怎么样 S[0] 都是指向 Length ;
还有没有类似的题目,最近在打基础;
感觉写比较大的商务项目时,可以小心用变量,
而不用去了解这些底层,
直接用现有的类和结构,开发比较快速;
因为这些结构也挺多,挺复杂的;如 Variant 变体类型 ;
还有很多第三方控件要学习;
没有做过整套的软件 ; 不知道接下来要怎么走 ...
我买的书是 D6 开发人员指南 是不是另外有一本D5 开发人员指南更好些;
第二章 Object Pascal语言 就看了好几天了,还是挺难看懂的 ...
不错的帖子。
原来是这样呀,一直以为string[i]实际存放的是string[1..i]的内容。
还没结贴啊~