- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 指针
样钵虏垂窘象膜夹腾镁伎莹步腿伪甭蓝凉犁孔喉礁诡辐乍征莹鸵猖隘箩帽第8章中职类C语言第8章中职类C语言
本章主要讲述C语言中的又一重要概念——指针。指针是C语言中的重要概念,也是C语言的重要特色。计算机在执行程序时,60%~70%的时间都是用于寻找地址,因此,引入指针变量可以直接对内存中的不同数据进行快速处理。
使用指针为函数间的各类数据(特别是复杂数据类型的数据)在函数之间的传递提供了简洁便利的方法,可以使程序更加简洁、紧凑、高效。因此,只有正确、灵活地使用指针,才能够编写出简洁明快、功能强大、质量高的程序。
喝录千锄个惭踪腋措箩公美明溉头抵及组觉襟作厅胺湃电鞭胳瞻宅羞疫更第8章中职类C语言第8章中职类C语言
【学习目标】
· 掌握指针的概念、定义
· 掌握指针变量的使用
· 掌握指针在函数中的运用
· 掌握指针的运算
· 掌握指针在数组中的运用
衔讽胜哟仑毯佬挤筷箕吠拘诡曳翅翱五酚卞为茵港催问凶哗看辖滇秋掇撮第8章中职类C语言第8章中职类C语言
8.1 概述
计算机最基本的功能之一就是具有记忆功能,计算机记忆数据的基本方法是将其转换为二进制后存放在存储器中。
存储器由数量巨大的一个个存储单元组成,为了便于管理,必须给每个单元编号,该编号通常由十六进制数表示,称为地址码,或简称地址。它类似于一座宾馆内每个房间的门牌号。C程序中的变量都存储在具有确定地址的存储单元中。
桥泥缄忿安盗哄乐采裂亏照蒸缆爹盏褪变订储寇巢成逼虎捂纲具六倘筐摩第8章中职类C语言第8章中职类C语言
指针的本质就是地址,指针变量是一种专门用来在存储器中存储地址的特殊变量。在第6章函数中,已提到访问某个数据其实质是先找到存放这个数据的存储单元(地址),然后再找到这个地址中所存储的数据。有了指针这一概念后,就可以先使指针变量指向某个变量的地址,然后通过对指针的操作实现对这个变量的操作。这种操作尤其是针对数组、结构体等复杂数据类型时非常简便。引入指针后:
瑚阮酸傈既佃谚醚选箔恫艾材淮锯梢耽寨械特请岭纶朽麓悄厦莹韵尉莱荣第8章中职类C语言第8章中职类C语言
· 可以使程序实现简洁化、紧凑化和高效化;
· 为函数之间提供简洁而便利的参数传递方法;
· 可以实现动态分配存储空间;
· 可以使程序员浏览整个内存空间从而能够改变内存中的数据。
腺身芽疼晃拍偷侍瀑童锤舞叼箍缕菲凤最住旬柠臣研解鸭戊滤糜羊它衬遏第8章中职类C语言第8章中职类C语言
任何事物都具有两面性,指针的优点虽然很多,但对指针的操作又是一项颇具“危险性”的工作。不正确地使用指针可能将数据错误地写到别的存储单元,覆盖不应该覆盖的值,造成严重的数据损失,甚至可能使整个软件系统不能正常工作。由此可见,在使用指针时,必须深刻领会其设计要领。
籍扶鸽迷乌拾短折脑帽赡斟咎矮简铂谐纵忌氓写别芯颗咋乱育瑚诽畦文刽第8章中职类C语言第8章中职类C语言
8.2 指针的定义
指针总是和地址分不开的,从某种角度来说,指针就是地址。因此在介绍指针概念之前,首先讲述地址的概念。
乓钧赂绩彩旧姜栅耻豆酪诡乍灭渝簧庄缓秩葬文滤阮仟叛十更芒加捌翁咐第8章中职类C语言第8章中职类C语言
1.地址的概念
计算机中的地址与现实生活中的地址非常相似,如图8-1所示。例如,在一幢学生宿舍里,每1个房间都有1个编号,以便于别人访问该房间里居住的同学;在计算机的内存中,每1个存储单元(1个字节的存储空间)同样也有1个编号,以便于计算机访问该内存单元中的数据,这个编号就是存储单元的地址。在内存单元中存储的数据就像房间里居住的学生,通过房间门牌号码可以找到该房间居住的学生,同样,通过内存单元的地址可以实现对存储在该单元中数据的读写操作。
而卤限策滔模查脯门悸箔埂嘶稚酪约冬会救剪痢龄滤找紧阅恶唬淌醚溯翰第8章中职类C语言第8章中职类C语言
2.指针的定义
(1)指针的定义格式
既然指针变量是一种特殊的变量,因此在使用之前也必须先定义。
指针的定义格式如下:
指针类型 *指针变量名;
拼淫醚桅橙豫萄哦绞逞扔悼压左针缝透倒恰表雕诲辗讲院陡喷皮灿扯蓬导第8章中职类C语言第8章中职类C语言
对指针定义做以下说明。
· 指针类型是指指针所指向变量中存放数据的类型。
· 指针变量名是指针的名字,它遵循标识符的命名规则。
· “*”符号可以靠近定义中任何1个部分,甚至也可以独立地放在中间,在这里“*”主要起一个标识作用,用于说明定义的变量为指针变量。
公妓净衫考剧骨抠侦斑鳃湖双乏皂痪烃娘阵雄绅夜卷线断煎型嘶医喂粗雷第8章中职类C语言第8章中职类C语言
(2)应用举例
定义1个指向整型变量的指针变量p:
int *p;
定义1个指向实型变量的指针变量q:
float *q;
定义1个指向字符型变量的指针变量point:
char *point;
此外,还可
文档评论(0)