下载此文档

[第17课]指针与动态变量.ppt


文档分类:IT计算机 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
指针与动态变量
NOI辅导之
引言
以前所讲的简单类型的数据或构造类型的数据都是静态数据,这些类型的变量一经定义,就在内存中占有固定的存储单元,直至程序结束。
指针类型的变量属于动态数据。是在程序执行时,根据程序的数据存储需要而扩充或缩减。
在PASCAL中,指针变量存放某个存储单元的地址,即指针变量指向某个存储单元。
指针类型说明的一般形式
Type 指针类型标识符=^类型标识符;
说明1:指针类型标识符由用户定义,必须符合标识符命名规则;
说明2:类型标识符:是除文件以外的任何数据类型。
例1:type point1=^integer; point2=^real;
解释:上例定义了两个指针类型,point1是整型指针类型,point2是实型指针类型。
指针类型变量的定义
说明了指针类型,就可以定义该类型的指针变量。
例var p1:point1;p2:point2;
类型说明可以与变量定义合并在一起。
例:var p1:^integer; p2:^real;
注意点:指针类型说明时,可以不遵循“先说明”后“使用”的原则。
例:point=^node;
node=record
num:integer;
name:string;
end;
var stu:^point;
动态变量
静态变量中存放的是相应类型的数据,而指针变量中存放的是相应类型数据所在的存储单元的地址。要访问指针变量所指向的数据,必须使用动态变量。
动态变量不在变量说明中定义,在程序执行过程中建立。它没有标识符,而是用指针变量后跟符号^表示。如p^:=245;
指针变量本身是简单类型(静态数据),它所指向的数据可以构成动态数据
整型变量P
某个数据
指针变量P
动态变量p^
某个存储单元的地址
某个数据
动态变量的建立
指针变量的值一般是通过系统分配的,建立一个动态变量(动态存储单元)必须调用标准过程NEW。
New过程调用的格式:new(指针变量);
New过程的作用:建立动态变量;为动态变量分配一定的存储空间,用以存放动态变量;并将动态变量的存储空间的首地址存入指针变量中。
例:var p:^integer; 此时P的值为nil
执行语句:new(p); 此时P的值为一存储单元地址
p^:=245;
一个指针变量只能存放一个地址
动态变量的撤消
释放动态变量使用标准过程dispose。
Dispose过程调用的格式:dispose(指针变量)
Dispose过程的作用:释放指针所指向的存储单元,使指针变量的值为nil,不指向任何存储单元。
例:dispose(p);
动态变量的操作
动态变量的引用:指针变量^
例:p^:=4; i:=p^;
对动态变量所能进行的操作是该类型(指针的基类型)所允许的全部操作。
例:var p:^integer; i:integer;
New(p); i:=4: p^:=4;
指针变量的操作
可调用new、dispose过程。如new(p); dispose(p);
具有同一基类型的指针变量之间相互赋值。
例:var p1,p2,p3:^integer;
New(p1); new(p2); new(p3);
P1^:=5; p2:=P1; p3^:=p1^+P2^;
可以给指针变量赋nil值。Nil是pascal的关键字,它表示指针的值为“空”。
例:P1:=nil;
可以对指针变量进行比较运算。
例1:new(P1); write(p1=nil); 结果将输出FALSE
例2:new(p1); new(p2); write(p1=p2); false
指针的应用一 —— 链表结构

[第17课]指针与动态变量 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数24
  • 收藏数0 收藏
  • 顶次数0
  • 上传人分享精品
  • 文件大小107 KB
  • 时间2017-07-19