- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 指针 * 6.1 指针与指针变量 6.1.1 指针 在计算机中,内存由一个个具有连续编码的存储单元所组成,即每一个存储单元都具有唯一的、固定的编号,这个编号称为内存单元的地址。如果在程序中定义了一个变量,由于不同的数据类型占据不同字节的存储空间,在编译时,系统就根据程序中定义的变量类型,分配相应的存储空间。例如,对整型变量分配2个字节,对实型变量分配4个字节,对字符型变量分配1个字节,而每一个字节都有一个地址。每个变量的首字节的地址称为该变量的地址。一个变量的地址称为这个变量的指针,指针就是地址。内存中的地址常用十六进制整型数表示。 如何查看一个变量的地址呢?可以用取地址运算符“”来实现。如运行以下程序: main( ) { int a=26; printf(a=%x,a=%d\n,a,a); } 可以查看整型变量a的地址(a占2个字节,看到的是它的首字节的地址)和a的值。 6.1.2 直接访问和间接访问 在C语言的程序中,一般是通过变量名对内存单元进行存取操作的。程序经过编译以后将变量名转换为变量的地址,对变量值的存取都是通过地址进行的。像这种直接按变量地址存取变量值的方式称为“直接访问”。如对以下程序: main( ) { int a,b,c; a=10;b=16; c=a+b; printf ( %d \ n ,c); } 变量的“间接访问”方式是将变量a的地址存放在另一个称为“指针变量”的变量中,当要读取变量a的值时,先从指针变量中取出a的地址,再从这个地址单元中取出a的值。 6.1.3 指针变量的定义和引用 如前所述,变量的地址就是变量的指针,存放变量指针(地址)的变量称为指针变量。指针变量的使用和其他变量的使用一样需要“先定义,后使用” 。 1.指针变量的定义 指针变量不同于其他变量,它是用来专门存放地址的,必须将它定义为“指针类型”。指针变量定义的一般形式为: 数据类型 *指针变量名 其中,“数据类型”说明该指针变量所指向的变量类型,“*”表示所定义的变量是一个指针变量而不是一个普通变量。 例如: int a,b,*pa,*pb; pa=a; pb=b; 定义了整型变量a、b及指针变量pa、pb,且pa、pb是用来指向整型变量的(即用来存放整型变量的地址)。 “”是取地址运算符,pa=a将变量a的地址存放到指针变量pa中,pb=b将变量b的地址存放到指针变量pb中。 在定义指针变量时可以赋给初值, 例如: int a, b,*pa=a ,*pb=b ; 2.指针变量的引用 在定义了一个指针变量并确定了它的指向后,就可以利用它来访问所指向的变量,称为对指针变量的引用。引用指针变量的一般形式为: * 指针变量名 这里的“*”称为指针运算符,也称为“间接访问”运算符。 [例6-1] 指针变量的引用。 程序如下: main() { int a,b,*pa,*pb; pa=a; pb=b; a=2; b=4; printf(%d,%d\n,*pa,*pb); *pa =10; *pb =20; printf (%d,%d\n,a,b ) } 程序运行结果: 2,4 10,20 注意:在C语言中,“*”符号目前已出现三种用法,一是乘法符号;二是指针变量定义符;三是指针变量引用符。在上例中,“先定义”指针变量,“后使用”——给它赋值(变量的地址)、引用它。 等同于 变量a *pa 变量a的地址a pa= a 6.2 指针运算 与其他变量一样,指针也是一种特殊的变量,也有指针运算。其中最常用的运算有:取地址运算,取值运算*,以及指针加、减运算等。 1.取地址运算 取地址运算是指取出运算符后面的变量在内存中占用的空间的起始地址。因为被指向的变量可能占用多个内存单元,指针并不记录它的所有地址,而只指向它的起始地址。 2.取数据运算* 与取地址运算符“”相对应的是取数据运算符“*”,也称指针运算符。取地址运算的操作对象是变量,而取数据运算的操作对象则是指针变量,用于访问某个地址的数据。“*”运算符除作为取数据运算符外,还作为定义指针变量标识符,另外还可作为算术乘法运算符。对于“*”在不同场合的作用,编译器能够根
您可能关注的文档
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第三章和第四章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第三章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第十一章1新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第十章1新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第五章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第一章和第二章新.ppt
- CAD CAM 技术 第2版 宁汝新 赵汝嘉 主编 第一章新.ppt
- CATIA V5R20机械设计教程 高校本科教材 詹友刚 第02章 草图的设计新.ppt
- CATIA V5R20机械设计教程 高校本科教材 詹友刚 第03章 零件设计新.ppt
- CATIA V5R20机械设计教程 高校本科教材 詹友刚 第04章 装配设计新.ppt
最近下载
- 红色革命文化-2025年高考语文作文复习之主题素材积累与运用.pdf VIP
- 中国传媒大学《微视频创意与制作》课件-微视频创意与制作-PPT-微视频创意与制作(第一章).pptx VIP
- 事故救援应急响应专项预案事故救援应急响应专项预案.doc VIP
- 人教版二年级上册数学全册教学设计(配2025年秋新版教材).docx
- 千级无尘室工程施工方案(3篇).docx VIP
- 深度解析《GBT 44037-2024焦炭溶损率及溶损后强度试验方法》.pptx
- 2025 中级注册安全工程师《金属非金属矿山安全》速记口诀.pdf
- 2025年中国吸顶式车载显示器数据监测研究报告.docx
- 九年级化学酸、碱、盐、氧化物知识小结 “三表一图”(二)天津版.doc VIP
- 部编版六年级上册语文第一周(草原-丁香结)达标测评卷 含答案.docx VIP
文档评论(0)