这个STRING会结果显示什么 ?

这个STRING会结果显示什么 ? VCL组件开发及应用
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]的内容。

还没结贴啊~

转载于:https://www.cnblogs.com/delphi2007/archive/2008/11/18/1335889.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值