integer的变量可以保存一指针吗?(100分)

  • 主题发起人 主题发起人 baoling
  • 开始时间 开始时间
B

baoling

Unregistered / Unconfirmed
GUEST, unregistred user!
看以前大富翁的历史数据,说是用控件的tag属性保存指针,我不明白,Delphi的pointer
只能转换成longint,而不能从longint反换出pointer,如果直接用pointer(longint)
的话,不就成了指向该longint的指针了,请各位老师详解,谢谢



 
用 ptr(整数) 可以把整数类型转换为对应的指针。
integer(pointer)又可变回来。
 
整数(Integer)和指针(Pointer,PChar,PByte...)的长度都是4Bytes,他们之间可以进行强制类型转换。

>>直接用pointer(longint)的话,不就成了指向该longint的指针了
非也,应该是——将该LongInt作为一个指针。比如LongInt变量LA的值为$004ABCDE,而在内存中
地址$004ABCDE处存放着1Byte信息——$5D,那么 PByte(LA)^ 的值就是 $5D 了。
 
同意creation-zy,说的非常准确
 
首先你要理解指针的实质是什么。指针实际是指内存中存储单元的地址。
那么存储单元的地址是用什么描述呢?答案是整数,
也就是说pointer和integer在内存中的描述是一致的。
对于你说到的longint和pointer的关系,其实也是一样的,因为[red]在32位系统[/red]中
[red]integer = longint[/red]
 
楼上的兄弟说的太对了!
 
多人接受答案了。
 

Similar threads

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