版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、指指 针针 指针是通过地址来访问变量的一种特殊的数据指针是通过地址来访问变量的一种特殊的数据类型,属于动态的数据结构,它可以在需要时类型,属于动态的数据结构,它可以在需要时产生,用完后则又可以取消或回收,以减少占产生,用完后则又可以取消或回收,以减少占用的内存空间。指针变量与其他类型的变量不用的内存空间。指针变量与其他类型的变量不同,它占有的不是数据,而是地址。同,它占有的不是数据,而是地址。由于动态数据结构的变量是在程序执行过由于动态数据结构的变量是在程序执行过程中动态生成的,所以不能预先予以说明,无程中动态生成的,所以不能预先予以说明,无法预先给这些变量起名字,访问时也无法通过法预先给这些
2、变量起名字,访问时也无法通过名字直接输出或显示,而只能用指针得到其地名字直接输出或显示,而只能用指针得到其地址,然后间接访问。址,然后间接访问。 1、定义指针类型、定义指针类型 在在Turbo Pascal中,指针变量用来存放某个存储单元的地址,中,指针变量用来存放某个存储单元的地址,即指针变量指向某个存储单元。一个指针变量仅能指向某一即指针变量指向某个存储单元。一个指针变量仅能指向某一种类型的存储单元,这种数据类型是在指针类型的定义中确种类型的存储单元,这种数据类型是在指针类型的定义中确定的,称为指针类型的基类型。指针类型定义如下:定的,称为指针类型的基类型。指针类型定义如下:类型名类型名基
3、类型名;基类型名;例如:例如:type q=integer;var a,b,c:q;说明:说明:q是一指向整型存储单元的指针类型,其中是一指向整型存储单元的指针类型,其中“”为指针为指针符。符。a,b,c均定义为指针变量,分别可以指向一个整型存储均定义为指针变量,分别可以指向一个整型存储单元。单元。 上例也可用变量说明为:上例也可用变量说明为:var a,b,c:integer;2、动态变量、动态变量应用一个指针指向的动态存储单元即动态变量的形式应用一个指针指向的动态存储单元即动态变量的形式如下:指针变量名如下:指针变量名例如:例如:p、q、r以下语句把整数以下语句把整数5存放到存放到p所指向
4、的动态变量所指向的动态变量p中去:中去: p:=5;以下语句把以下语句把p所指向的所指向的p中的值赋给整型变量中的值赋给整型变量i: i:=p;如果指针变量如果指针变量p并未指向任何存储单元,则可用下列并未指向任何存储单元,则可用下列赋值语句:赋值语句: p:=nil;其中其中nil是保留字,表示是保留字,表示“空空”,相当于,相当于C语言里面的语言里面的null 3、对动态变量的操作、对动态变量的操作在Turob Pascal程序中,动态变量不能由var直接定义而是通过调用标准过程new建立的。过程形式为:new(指针变量名指针变量名);如果有下列变量定义语句:var p: integer;
5、仅仅说明了p是一个指向整型变量单元的指针变量,但这个整型单元并不存在,在指针变量p中还没有具体的地址值。在程序中必须通过过程调用语句:new(p);才在内存中分配了一个整型变量单元,并把这个单元的地址放在变量p中,一个指针变量只能存放一个地址。在同一时间内一个指针只能指向一个变量单元。当程序再次执行new(p)时,又在内存中新建立了一个整型变量单元,并把新单元的地址存放在p中,从而丢失了旧的变量单元的地址。为了节省内存空间,对于一些已经不使用的现有动态变量,应该使用标准过程dispose予以释放。过程形式为:dispose(指针变量名指针变量名);为new(指针变量名)的逆过程,其作用是释放由
6、指针变量所指向的动态变量的存储单元。例如在用了new(p)后在调用dispose(p),则指针p所指向的动态变量被撤销,内存空间还给系统,这时p的值为 nil。 4需要注意之处需要注意之处 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西警官职业学院《基础阿拉伯语四》2024-2025学年第二学期期末试卷
- 2025年公共卫生培训试卷测试卷
- 涡轮发动机修理工岗前创新思维考核试卷含答案
- 纯碱碳化工达标强化考核试卷含答案
- 水声换能器密封工安全培训竞赛考核试卷含答案
- 磁浆制备工安全防护测试考核试卷含答案
- 过磷酸钙生产工创新意识能力考核试卷含答案
- 铁合金成品工风险识别模拟考核试卷含答案
- 金融风险管理师安全宣教水平考核试卷含答案
- 磁头研磨工岗前岗位水平考核试卷含答案
- 《医学影像诊断报告书写指南》(2025版)
- 【《永磁同步电机磁场定向矢量控制调速系统仿真研究》14000字(论文)】
- DB12∕T 1281-2023 二次供水运行维护管理规范
- 足浴店托管协议合同范本
- 公司注销解散协议书范本
- 2025-2026学年中华中图版(五四学制)(2024)初中地理六年级上册教学计划及进度表
- 《关于严格规范涉企行政检查的意见》知识解读
- GB/T 45880-2025单片陶瓷摩擦和磨损特性的测定球板法
- 医养健康产业链分析
- 人大换届工作培训课件
- 公安安全教育开学第一课
评论
0/150
提交评论