delphi 指针详解

delphi 指针详解,第1张

解释指针很简单,想用好比较难。

指针就是就是执行内存地址的一个链接,指针本身不存储数据。

指针的 *** 作就是指向地址和取出地址内容

改变指针指向不会改变地址内容

反正我是这么理解不知道对不对啊,简单明了

编译通得过,Pointer,pByte,Cardinal都可以直接用,p开头的一般是一些指针类。

p:Pointer :定义P为一般性通用的指针,可以作为任何类型数据的指针

tb1:=pByte(p)^把p强制转换为字节指针(它所指向的数据仅占一个字节),并把指针地址所指向的内容(Byte类型)传给tb1

tb2:=pByte(Ptr(Cardinal(p)+1))^把P指针的地址转换为一个无符号整数,并且把这个整数加1,然后再转换为指针,再转换为字节指针,再把内容传给tb2

tb3:=pByte(Ptr(Cardinal(p)+2))^原理同上

tb4:=pByte(Ptr(Cardinal(p)+3))^

pByte(p)^:=tb4把p强制转换为字节指针,并把指针地址所指向的地方放入TB4

pByte(Ptr(Cardinal(p)+1))^:=tb3原理同上

pByte(Ptr(Cardinal(p)+2))^:=tb2

pByte(Ptr(Cardinal(p)+3))^:=tb1

整个句子看下来,就是把P所指向连续四个字节的内存信息内容刚好反转过来,

比如:

地址:数据

[p+0]:0A

[p+1]:0B

[p+2]:0C

[p+3]:0D

现在:

[p+0]:0D

[p+1]:0C

[p+2]:0B

[p+3]:0A

只要这样就可以了type

Pint

=

^integer

PPint

=

^PintPPint就是integer指针的指针其他的一样.delphi中使用指针必须先定义类型,否则类型不相容比如i:

^integerk:

^integeri与k的类型是不相容的必须这样i:

Pintk:

Pint


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6699280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存