- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章指针 本章要点 5.1 数据存储的位置 5.2 指针运算与数组 5.3 字符串比较 习题 5 5.1 数据存储的位置 5.1 数据存储的位置 5.1 数据存储的位置 5.1 数据存储的位置 5.1 数据存储的位置 5.1 数据存储的位置 5.1 数据存储的位置 5.1 数据存储的位置 5.1 数据存储的位置 5.2 指针运算与数组 5.2 指针运算与数组 5.2 指针运算与数组 5.2 指针运算与数组 5.2 指针运算与数组 5.2 指针运算与数组 5.3 字符串比较 5.3 字符串比较 5.3 字符串比较 5.3 字符串比较 5.3 字符串比较 5.3 字符串比较 5.3 字符串比较 5.3 字符串比较 * * 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: 5.1.1 指针的定义与引用 从前面的学习中知道,变量在定义后,将在内存中为其分配存储空间,变量在内存中具有惟一的地址,对变量的访问,实质就是对变量存储空间的内容进行访问。这样,就可以用另一种方法来访问变量内容,即不通过变量名,而是通过对变量在内存中的地址进行访问。这种访问方式就是指针访问。 1.变量在内存中的地址 指针是C语言中一类非常重要的数据类型。在程序设计中,指针得到广泛的使用,它可以更好地表示复杂的数据结构,有些其他数据类型无法或很难实现的操作,都可以利用指针来完成。要学好C语言,必须对指针有深入的学习和掌握。 要掌握指针与指针变量,有必要先了解数据在内存中是如何存储和访问的。 在计算机内存中,拥有大量的存储单元,每个单元以字节为单位。为了便于管理,系统按顺序为每个单元进行编号,每个单元都具有自己的惟一编号,这个编号就是该单元在内存中的地址。 当在程序中定义一个变量时,系统就在内存中为该变量分配一个大小合适的存储空间,所需要的空间大小由变量的类型而定,一个int型变量占2个字节,一个float型变量占4个字节,而整型数组a[5]则占2×5个字节。 例如: int n=10; float pi=3.14; int a[5]={1,2,3,4,5}; 在上述定义执行后,系统将在内存中连续为这些变量分配存储空间,假设变量的起始地址为1000,则这些变量在内存中的地址如图5-1所示。 图5-1 变量在内存中的地址 由于各个变量在内存中所占存储空间大小不一,为了便于对变量地址的访问,将变量存储单元的起始地址定义为变量的地址。对于上面定义的变量,n的地址为1000,pi的地址为1002,a[0]的地址为1006。 在变量定义完成后,这些变量就在内存中具有了一个惟一的存储空间,也就具有了惟一的变量地址,可以通过变量的地址对其进行访问。 变量存储空间、变量地址与变量内容的关系就如同是仓库、仓库编号与货物的关系,可以将内存单元看成一个个的仓库,内存地址就是仓库的编号,在定义变量时意思就是“将某号仓库分配给某人使用”,而变量的内容就相当于是仓库内的货物,在给变量进行赋值时相当于“将某某货物放到某号仓库”。 通常情况下,可以直接通过变量名对变量内容进行访问,而无需知道变量在内存中的地址,系统会自动将访问转换为对内存单元的访问,这种通过变量名来对变量存储单元进行访问的方式称为“直接访问”。图5-2 变量的间接访问 C语言中还支持对变量的内存单元进行“间接访问”。这种访问形式中,允将变量的地址赋给另一个特殊的变量,程序中可以利用这个特殊的变量来访问变量的内存单元,这个特殊变量称为指针。 在图5-2中给出了使用指针进行“间接访问”的图示。 图5-2 变量的间接访问 其中,变量n是一个int型变量,它占有两个存储单元,变量n的地址为2001,变量n的值为999。变量p是一个指针,它本身存储在地址为1001的内存单元中,变量p的内容为变量n的地址2001,在这种情况下要对变量n进行访问时,可以从变量p中获得变量n的地址,再通过变量n的地址进行访问。此时,变量p称为指向变量n的指针。 由于变量n占有多个存储单元,那么p是如何知道它所代表的是哪些单元的内容呢? 因为变量n是一个int型变量,因此可以将p定义为一个int型指针,这样,在使用指针p访问变量n时,程序就知道所要访问的是一个int型变量,int型变量占有两个存储单元,因此将对地址从2001开始的两个单元进行访问。 2.指针的定义 从前面的学习中可知,所谓指针变量就是用来存放内存地址的变量。 指针变量的定义方式如下: 类型 * 变量名1; /* 定义单个指针变量 */ 类型 *
您可能关注的文档
- C语言程序设计教程 作者 陈宝贤 第12章结构体与共用体.ppt
- C语言程序设计教程 作者 陈宝贤 第13章文件.ppt
- C语言程序设计教程 作者 陈宝贤 第14章 位运算.PPT
- C语言程序设计教程 作者 李丽娟 第3章程序的简单算法制定.ppt
- C语言程序设计教程 作者 李丽娟 第4章分支语句.ppt
- C语言程序设计教程 作者 李丽娟 第5章循环结构.ppt
- C语言程序设计教程 作者 李丽娟 第6章函数与宏定义.ppt
- C语言程序设计教程 作者 李丽娟 第8章指针.ppt
- C语言程序设计教程 作者 李玲1 第1章.ppt
- C语言程序设计教程 作者 李玲1 第2章.ppt
- C语言程序设计实用教程 作者 杨旭 王爱赪 关昀 徐庆1 第6章.ppt
- C语言程序设计实用教程 作者 杨旭 王爱赪 关昀 徐庆1 第7章.ppt
- C语言程序设计实用教程 作者 杨旭 王爱赪 关昀 徐庆1 第8章.ppt
- C语言程序设计实用教程 作者 杨旭 王爱赪 关昀 徐庆1 第9章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第0章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第2章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第4章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第5章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第6章.ppt
- C语言程序设计新视角 作者 周幸妮 全书教案_ 第7章.ppt
最近下载
- DB 14T 2122—2020地质灾害调查规范.pdf VIP
- 高速铁路的养护维修—高铁精密测量控制网.pptx
- 俄语学法指导八年级全一册答案.doc VIP
- 4.6线段的垂直平分线(第1课时线段垂直平分线的性质定理及逆定理)(教学课件)-2025-2026学年八年级数学上册(湘教版2024).pptx
- 卫星互联网行业报告:卫星互联网建设与应用.pptx VIP
- 石油和天然气开采钻井井场设备设施安全事故隐患排查清单.pdf VIP
- 09SMS202-1埋地矩形雨水管道及其附属构筑物(混凝土模块砌体)清晰版建筑工程图集 .docx VIP
- ..物质由微观粒子构成.资料.ppt
- TGSS型水平刮板输送机.doc VIP
- 医学ppt--肥胖心血管疾病.ppt VIP
文档评论(0)