易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi指针类型浅析

参考资料
“浅谈Object Pascal的指针”
“Delphi 指针入门”
 
基本知识
指针
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。  
注意:
(1)、指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。
(2)、一个指针变量仅仅是存储一个内存的地址,为指针所指向的内容分配空间是程序员要干的工作。
(3)、如果一个指针没有指向任何数据,它的值是n i l,它就被称为是零( n i l )指针或空(null) 指针。
(4)、要访问一个指针所指向的内容,在指针变量名字的后面跟上^运算符。这种方法称为对指针取内容。
(5)、指针的指针就是用来存放指针所在的内存地址的。
 
要搞清一个指针,需要了解以下内容:
(1)、指针的类型。
(2)、指针所指向的类型。
(3)、指针的值(即指针所指向的内存区)。
(4)、指针本身所占据的内存区。
 
指针大小
指针是一个无符号整数(unsigned int),它是一个以当前系统寻址范围为取值范围的整数。指针类型变量本身要占内存,占用内存的大小与机器硬件、操作系统以及编译器都有关系,最直接的关系就是编译器,现在的编译器大都是32位(4B)的,即使你的机器和操作系统都是是64位的,所以指针类型变量一般占用4B空间(也就是可表示2^32次方的地址空间)。
 
指针类型
一个指针变量指示了内存的位置。PASCAL通用指针类型的名称是Pointer,Pointer有时又被称为无类型指针,因为它只指向内存地址,但编译器并不管指针所指向的数据,所以建议你在大部分情况下用有类型的指针。
 
任何对象、结构、变量什么的,在内存里面,实质上就是字节流,那么很有可能某一个字节数组array of char的内容刚好和某一个对象的字节流内容一样,如果一个pointer指向的内容为上述字节内容,你能区分是那个对象还是array of char的字节数组?Pointer 作为一个无类型指针,可以指向任何元素。强制转换时,Delphi 并不知道 Pointer 指向的数据是什么类型。例如TObject(p) 就是一种强制转换,用于告诉编译器指针指向的数据是TObject的实例。也就是说:编译器不能确定类型转换的正确性!你必须自己负责该指针的实际指向!总得说来,无类型指针的转换是没有安全性的,你必须明确指针的用途才可以使用。
 
有类型指针在你的应用程序的Type部分用^ (或Pointer)运算符声明。对于有类型指针来说,编译器能准确地跟踪指针


相关文档:

边用边学Delphi编程

本书通过典型的实例,系统地介绍了Delphi典型组件的基本使用方法和一些使用技巧。每一个实例都提供了程序的源代码、操作步骤,并且在一些特殊的实例中注明了知识点。力争使读者通过阅读实例后,可以较好地掌握每一个知识点。 本书分为五章,内容由浅入深、循序渐进,适用于初级用户和院校师生学习参考。 下载阅读边用边学D ......

delphi 读取txt文件


1、 放一下memo控件、一个button、opendialog
在button的click事件中
if opendialog1.Execute then
memo1.Lines.LoadfromFile(opendialog1.filename);  
2、滥简单的事啊
var
   Mytxt : TStringList;
begin
   MyText :=
TStringList('你的文本文件及路径');
 
&nbs ......

Delphi自适应分辨率(比较完美的一个方法)

procedure TfrmMain.FormCreate(Sender: TObject); //主窗体FormCreate事件
var FWidth:integer;
begin
  if (screen.Width <> 1024) then  //假设你设计程序时的分辨率为1024
  begin
    FWidth:=width;
    scaled:=true;
  & ......

Delphi Assigned


1.根据 Delphi 指令参考手册中
说明:
Assigned 函式在参数不为nil时传回True,表示指针已经指到某个内存地址,这个内存地址可能是一个对象地首地址,也可能在函数或过程中,声明一个指针变量,没有赋值为nil ,无乱的指向某处,这两个种情况,Assigned(指针变量)都不为nil , 函数放回True;
而参数为nil时则传回Fals ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号