Delphi程序设计第8章 指 针 类 型.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 指 针 类 型 指针构造和访问动态数据结构会更加灵活、方便。Windows API函数中使用了指针,学习基于Windiws平台的程序设计,必然涉及与Windows的交互。 8.1 指针类型的声明 8.2 指针的运算 8.3 无类型指针 8.4 字符指针类型 8.5 动态存储结构的实现 8.1 指针类型的声明 声明指针类型的语法如下: Type 〈指针类型标识符〉 = ^〈基类型〉; 其中,指针类型标识符即是指针类型名,基类型可以是简单类型,如整型、实型、字节型等,也可以是结构类型,如数组、记录、集合等类型。 指针声明示例如下: 8.1 指针类型的声明 Type Tr=^Integer; P1=^Real; Word=Record Name:String[10]; Age:Integer; Scores:real; End; BytePtr = ^ Byte; WordPtr = ^ Word; 8.2 指针的运算 这里主要介绍用于指针运算的基本用法。 1. New过程 New是Object Pascal中的标准例程(在System单元声明),用于在应用程序中为动态变量分配一块区域,并把该区域的地址赋给指针变量。所分配区域的大小由指针所指的类型决定。 New过程的声明如下: Proceddure New(var P:Pointer); 8.2 指针的运算 2. @操作符 @操作符是个一元操作符,用于获得操作数的地址,@后面的操作数可以是变量、过程、函数或类类型中的方法。程序示例如下: procedure ChangeValue(X:Integer); Var IntPtr:^Integer; begin IntPtr:=@X; Writeln(IntPtr^); IntPtr^:=20; end; 8.2 指针的运算 3. PTR函数 Ptr函数是Pascal中的标准例程(在System单元声明),用于把一个指定的地址转换为指针。Ptr函数的语法为: function Ptr(Address: Integer): Pointer; 其中Address是一个整数,用于表示一个32位地址,函数执行的结果是把32位地址转化为指针。 8.2 指针的运算 4. GetMem过程 GetMem过程也是Pascal中的标准例程(在System单元声明),类似于New,用于在应用程序堆栈中为动态变量申请一块指定大小的区域,并把该区域的地址赋予指针变量。GetMem函数的语法为: procedure GetMem(var P: Pointer; Size: Integer); 8.3 无类型指针 无类型的指针是指指针变量在声明时没有指明基类型。无类型指针在声明中只使用Pointer。例如: var pAnyPoint:Pointer; 8.4 字符指针类型 字符指针类型即PChar数据类型,是一个指向以NULL(不是零)字符结尾的字符(Char)串的指针。 8.5 动态存储结构的实现 指针常用来描述动态存储结构的实现。动态存储结构中较常用的有链表、堆栈、队列等存储结构。可以把堆栈和队列看成特殊的链表。 链表是一组元素的序列链表中的元素通常称为节点,第一个节点称为表头,最后一个节点称为表尾。指向表头的指针称为头指针,在这个头指针中存放着表头的地址。节点一般用记录来描述,描述节点的记录至少含有两个域,一个域用来存放数据。

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档