第15讲 指针(pascal程序语言基础)_第1页
第15讲 指针(pascal程序语言基础)_第2页
第15讲 指针(pascal程序语言基础)_第3页
第15讲 指针(pascal程序语言基础)_第4页
第15讲 指针(pascal程序语言基础)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、指 针 1 指针是通过地址来访问变量的一种特殊的数据类型,属于动态的数据结构,它可以在需要时产生,用完后则又可以取消或回收,以减少占用的内存空间。指针变量与其他类型的变量不同,它占有的不是数据,而是地址。由于动态数据结构的变量是在程序执行过程中动态生成的,所以不能预先予以说明,无法预先给这些变量起名字,访问时也无法通过名字直接输出或显示,而只能用指针得到其地址,然后间接访问。 21、定义指针类型 在Turbo Pascal中,指针变量用来存放某个存储单元的地址,即指针变量指向某个存储单元。一个指针变量仅能指向某一种类型的存储单元,这种数据类型是在指针类型的定义中确定的,称为指针类型的基类型。指

2、针类型定义如下:类型名基类型名;例如:type q=integer;var a,b,c:q;说明:q是一指向整型存储单元的指针类型,其中“”为指针符。a,b,c均定义为指针变量,分别可以指向一个整型存储单元。 上例也可用变量说明为:var a,b,c:integer;32、动态变量应用一个指针指向的动态存储单元即动态变量的形式如下:指针变量名例如:p、q、r以下语句把整数5存放到p所指向的动态变量p中去: p:=5;以下语句把p所指向的p中的值赋给整型变量i: i:=p;如果指针变量p并未指向任何存储单元,则可用下列赋值语句: p:=nil;其中nil是保留字,表示“空”,相当于C语言里面的n

3、ull 43、对动态变量的操作在Turob Pascal程序中,动态变量不能由var直接定义而是通过调用标准过程new建立的。过程形式为:new(指针变量名);如果有下列变量定义语句:var p: integer;仅仅说明了p是一个指向整型变量单元的指针变量,但这个整型单元并不存在,在指针变量p中还没有具体的地址值。在程序中必须通过过程调用语句:new(p);才在内存中分配了一个整型变量单元,并把这个单元的地址放在变量p中,一个指针变量只能存放一个地址。在同一时间内一个指针只能指向一个变量单元。当程序再次执行new(p)时,又在内存中新建立了一个整型变量单元,并把新单元的地址存放在p中,从而丢

4、失了旧的变量单元的地址。5为了节省内存空间,对于一些已经不使用的现有动态变量,应该使用标准过程dispose予以释放。过程形式为:dispose(指针变量名);为new(指针变量名)的逆过程,其作用是释放由指针变量所指向的动态变量的存储单元。例如在用了new(p)后在调用dispose(p),则指针p所指向的动态变量被撤销,内存空间还给系统,这时p的值为 nil。 64需要注意之处 1、P与P的区别P是指向该动态变量的指针变量名,P则称为动态变量或标志变量。P的值是P的首地址,P的值为与基类型相同的一个值。2、定义后及时分配存储单元定义了一个指针变量后,并没有为该指针分配动态存储单元,此时的P的值无定义,调用P则会产生运行错误。若想使该指针可用,可以对指针赋值,也可以通过NEW()过程分配存储单元。3、使用后及时收回存储单元指针使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论