delphi – 是否使用^指向价值的规则是什么?
以下是在delphi中使用指针的简单示例.
Type TRecord1 = Record field1 : String; end; procedure TForm1.Button2Click(Sender: TObject); var Rec : TRecord1; Ptr: ^TRecord1; begin Rec.field1:= 'field1'; Ptr := @Rec; memo1.Lines.Add (Ptr^.field1); memo1.Lines.Add (Ptr.field1); // it also works. end; 在这种情况下,Ptr ^和Ptr都可以工作.看来,delphi是允许用户更多地指向价值的灵活性.但是通过阅读这两行,它们在语法上是不同的,可能意味着不同.在这种情况下,两个工作.但我的问题是: >在其他情况下,用户可以知道哪些可以或不可以 非常感谢. 解决方法
一个普通的指针没有任何字段或属性,所以忽略了Delphi的智能,Pointer.Field语法没有意义.因为指针^ .Field和Pointer.Field之间不能有冲突,只是因为平原.如果您不重新引用指针,语法是无意义的. 如果指针指向的类型没有任何字段,则必须使用^语法.也就是说,当指针是指向基本类型的指针时,或者是一个无类型的指针.
类实例引用(大多数人称之为“对象”)也是Delphi中的指针,我假定引入了语法,使得使用指针不太冗长,更像使用类.它也是无害的,因为如上所述,编译器不能弄错. 我个人更喜欢^.语法,因为它清楚地表明我正在使用一个指针,而不是一个记录或类. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |