加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 是否使用^指向价值的规则是什么?

发布时间:2020-12-15 04:27:47 所属栏目:大数据 来源:网络整理
导读:以下是在delphi中使用指针的简单示例. TypeTRecord1 = Recordfield1 : String;end; procedure TForm1.Button2Click(Sender: TObject);var Rec : TRecord1; Ptr: ^TRecord1;begin Rec.field1:= 'field1'; Ptr := @Rec; memo1.Lines.Add (Ptr^.field1); memo1.
以下是在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是允许用户更多地指向价值的灵活性.但是通过阅读这两行,它们在语法上是不同的,可能意味着不同.在这种情况下,两个工作.但我的问题是:

>在其他情况下,用户可以知道哪些可以或不可以
省略或用^或不表示相同或不同?
>这些情况是什么?例子将不胜感激
>为什么? (可选的)

非常感谢.

解决方法

how can a user know in other situations where ^ can or can not be omitted or,where with ^ or without ^ means the same or differently?

What are those situations ? Examples will be appreciated.

一个普通的指针没有任何字段或属性,所以忽略了Delphi的智能,Pointer.Field语法没有意义.因为指针^ .Field和Pointer.Field之间不能有冲突,只是因为平原.如果您不重新引用指针,语法是无意义的.

如果指针指向的类型没有任何字段,则必须使用^语法.也就是说,当指针是指向基本类型的指针时,或者是一个无类型的指针.

Why? (Optional)

类实例引用(大多数人称之为“对象”)也是Delphi中的指针,我假定引入了语法,使得使用指针不太冗长,更像使用类.它也是无害的,因为如上所述,编译器不能弄错.

我个人更喜欢^.语法,因为它清楚地表明我正在使用一个指针,而不是一个记录或类.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读