- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第9章 指针 清华大学版 孙承爱著 c语言
2000年1月25日 北京化工学院信息基础教研室 第9章 指针 学习目标 正确理解地址和指针的概念; 学会各种类型的指针变量的定义并掌握其引用方法,理解指针变量运算的含义; 充分理解数组在内存中的存储结构,掌握运用指针操作数组和字符串的方法与技巧; 学会使用指针数组和指向指针的指针; 灵活运用指针作函数参数和返回值; 理解指向函数的指针的概念,初步掌握其定义与应用方法。 学习内容 9.1引言 我们已经知道,要运行一个程序,首先要借助编译程序将其转换成目标代码,然后,通过操作系统(OS)的特定程序将其目标代码装入特定的可标识的内存区域中。而这一编译和装入过程对于程序员来说是不可见的,也就是说,程序员不知道程序的目标代码装入了内存的哪些区域。因此,程序员只能通过程序所定义对象(包括变量、常量和函数)的名称来访问对象,这种访问方式被称为“直接访问”。假定我们能够知道某程序对象在内存中的存储位置,即存放该对象的第一个内存单元的地址(首地址),使用该地址,当然也可以访问该对象,我们把这种访问方式称为“间接访问”。 C语言提供了解决上述问题的必要的技术手段,这就是本章要学习的所谓“指针”的概念及其应用。指针是C语言的一个重要概念,也是C语言区别于其它计算机语言的重要特色之一。正确而灵活地运用指针,可以实现对程序对象的“间接访问”;可以主动地和动态地管理和使用内存;可以更加方便地表示复杂的数据结构;可以更加方便高效地使用数组;可以在调用函数时通过地址传递获得多个返回值等,总之,掌握指针的应用,在解决很多特定的问题时,可以使程序员更加灵活、方便地编写出简洁、紧凑和高效的程序。因此,对每一个学习和使用C语言的人,都应当深入学习并熟练掌握指针。 9.2指针与指针变量 为了使程序员能够获得程序对象的存储地址以及动态管理和使用内存空间,C语言引入了一种新的数据类型——指针类型,该类型的变量称为指针变量,是专用于存放一种特殊的数据——地址的变量。本节详细讲解了地址和指针的概念、指针变量的定义和引用方法、指针变量作函数参数以及指向指针的指针等内容,该部分内容是正确使用指针进行编程的基础和关键。 9.2.1 指针的概念 内存是由若干个存储单元(每个存储单元为1B或8b)按线性结构组成的,为了标识不同的内存单元,每个存储单元都有一个唯一的编号,我们将这一编号称为内存单元的地址。实际上,程序要完成对各种类型数据的读、写操作,就必须知道数据在内存中的存储位置。虽然不同类型的数据在内存中所占有的存储单元的数目不同,但由于其所占存储单元都是连续的,因此,我们用存放该数据的第一个内存单元的地址(即首地址)来表示该数据的存储位置。 9.2.2 指针变量的定义及引用 在C语言中规定指针类型的标识符为:“基类型 *”,其中基类型可以是C语言中的任何一种数据类型,如int,float等。 指针变量的定义 格式:基类型 *变量名列表 功能:定义指针变量 【例如】int *p1; //p1是指向整型变量的指针,基类型是整型 float *p2; //p2是指向浮点型变量的指针,其基类型是浮点型 char *p3; //p3是指向字符型变量的指针,其基类型是字符型 【说明】(1) int *、float *、char * 是指针类型说明符。 (2) p1、p2和p3是指针类型变量名,应为合法标识符。 【注意】(1) 在定义指针变量时,以下三种写法都可以编译通过. int* p1; int * p1; int *p1;/*此种写法最常用*/ (2)在定义指针变量时必须指定基类型:因为不同的基类型变量对应的存储区域大小不同,例如int 整型变量占2个字节,字符型变量只占1个字节。明确了指针变量的基类型,编译器就能根据指针变量的基类型来读取内存中相应的连续区域。 (3)指针变量中只能存放地址(指针)。切忌将一个非地址类型的数据赋给一个指针变量(NULL和0可以直接赋值给指针变量)。 例如:int i=3000; int *p=3000; /*这是不正确的*/ p=i; /*这是不正确的*/ 【思考】(1) 指针类型变量的定义与其它类型变量的定义有何不同? (2) 指针变量在定义的同时进行初始化的方法? 取地址运算符 用运算符可以获取变量的首地址,该运算符被称为取地址运算符。利用取地址运算符可以对指针变量进行初始化。 格式:变量名 功能:取变量名所在存储区域的首地址 【例如】int i=10,k; int *p1=i;/*定义指针变量的同时进行初始化*/ int *p2; int *p3; float *p; p2=i; p3=p1; //直接引用指针变量名,可得到该指针变量所存储的地址
您可能关注的文档
最近下载
- 《运动生物力学》绪论.pptx
- 统编版高中语文必修上册第三单元起始课课件.pptx VIP
- 腹部与骨盆X线摄影技术.pptx VIP
- 绿色环保节能材料.pptx VIP
- 创业基础(暨南)中国大学MOOC慕课 章节测验期末考试答案(期末考试题目从章节测验中选出,题目没对上,可以在章节测验中查找).docx VIP
- 做自己的光,不需要太亮(带歌词完整版善宇) 高清钢琴谱五线谱 .pdf VIP
- 《新能源汽车技术》课件——第七章 燃料电池电动汽车.pptx VIP
- 依托咪酯它究竟为何物-禁毒宣传主题班会课件.pptx VIP
- 2025年化学卤水题目及答案.doc
- 《智能安防技术应用》课件.ppt VIP
文档评论(0)