关于指针中"^"的一个问题(50)

  • 主题发起人 主题发起人 funxu
  • 开始时间 开始时间
F

funxu

Unregistered / Unconfirmed
GUEST, unregistred user!
今天查看指针帮助时突然发现一个问题typepmyrec=^myrec
myrec=record i:integer
r:real
end;...varrec:pmyrec;t:tlist;i:integer;begint:=tlist.create;new(rec);rec^.i:=10;//rec.i:=10;rec^.r:=0.01;//rec.r:=0.01;t.add(rec);new(rec);rec^.i:=20;//rec.i:=20;rec^.r:=0.02;//rec.r:=0.02;t.add(rec);..for i:=t.count-1 downto 0 dobegindispose(t.items);end;t.free;end;这是一段关于指针的标准使用例子,经过测试注释掉的代码也可以正常使用,赋值和释放,从list里取出的值也完全正确 那么我想问rec^.i:=10和rec.i:=10;是相同的意思么?rec.i:=10;这样使用过很多次也没有发现内存溢出和访问错误rec^应该是指针指向的值,而rec是指针,rec.i是怎么赋值的呢?
 
其实是编译器自动识别了 帮助里有提到的程序员就比较囧了因为编译器背后做了很多工作 所以语法看上去不那么严格 很费解用调试器跟踪下 那两种写法应该是一样的 以实际运行为准
 
其实我以前也是认为delphi背后给和谐了,不过因为没找到帮助里的介绍,不敢确定,而且看delphi开发指南里说delphi的指针非常严格,虚了,呵呵谢谢楼上了
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
911
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
705
import
I
后退
顶部