- 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章 指针 第6章 指针 6.1 地址与指针 内存就是计算机内部存储器,是由存储单元组成的。存储单元的编号就是内存地址。 在程序中定义一个变量,在对程序进行编译时,系统就会给这个变量分配具体的内存单元。这个单元有个地址,变量名和其地址对应。 6.1 地址与指针 在程序中我们是通过变量名来对内存单元进行存取操作的。这种按变量名存取变量值的方式称为“直接访问”方式。 例如:a=5; b=a; 其实程序经过编译以后已经将变量名转换为变量的地址,对变量值的存取都是通过地址进行的。 6.1 地址与指针 还有一种 “间接访问” 变量值的方法:将a变量的地址存放在另一个专门存放地址的变量pa中,通过pa变量存取a变量的值。 例如:变量a存放数值5; 变量pa存放a变量的地址2000H。 b=*pa; 什么是指针呢?变量的地址(编号)就是变量的指针。存放地址的变量就是指针变量。在这里的pa就是指针变量。 6.1 地址与指针 指针变量用来指向另一个变量。 为了表示指针变量和它所指向的变量之间的联系,在程序中用“*”符号表示指向(取指针内容),它实际执行的是“间接访问”运算,如果已定义pa为指针变量且存放a变量的地址,则*pa是pa所指向的变量。*pa等价于a。 若a变量存放的值为5,则a代表5,pa代表a的地址,*pa代表a,就是5。 6.2 变量的指针和指针变量 6.2.1 指针变量的定义 定义指针变量的一般形式为 基类型 *指针变量名; 下面都是合法的定义: float *pf; char c,*pc; 可以用赋值语句使一个指针变量得到另一个变量的地址,从而使它指向该变量。例如: pc=c; 将变量c的地址存放到pc中,因此pc就“指向”了变量c。 6.2.1 指针变量的定义 在定义指针变量时要注意两点: ①在定义指针变量时,指针变量名前面加“*”表示该变量的类型为指针型变量。 但在使用指针变量时,指针变量名前面加“*”表示进行间接寻址操作(取指针内容)。如有: int i=3,j,*pi; \\ “*”表示pi的类型为指针型变量 pi=i; j=*pi; \\ “*”表示取指针pi所指变量的值 结果:j的值为3。 ②一个指针变量只能指向定义时指定的基类型的变量,不能忽而指向一个整型变量,忽而指向一个实型变量。 6.2.2 指针变量的引用 指针变量同普通变量一样,在使用之前要先定义,但需注意的是指针变量定义后,变量值不确定,应用前还必须先赋予具体的值。未经赋值的指针变量是不能使用的。 未经赋值的指针变量叫做“野指针”,它的初始值是随机的。如果未经赋值而对它随机指向的内存单元进行操作,可能产生严重后果。 指针变量只能赋予地址,绝不能赋予任何其他数据,否则将引起错误。 6.2.2 指针变量的引用 6.2.2.1 指针变量的初始化 指针变量初始化的一般形式为: 基类型 *指针名=初始地址值; 变量的地址是由编译系统内部分配的,用户不知道变量的具体地址,所以不能直接给出地址值,只能通过运算获得。有两个有关指针的运算符: :取地址运算符 *:指针运算符(取指针内容运算符) int a,*pa=a; //用取a的地址,pa指向a变量 *pa=10; //给pa所指向的变量(a)赋值 6.2.2 指针变量的引用 6.2.2 指针变量的引用 “”和“*”是互逆运算(可以抵消): ①*p1的含义是什么? 先进行*p1的运算,它就是变量x,再执行运算就是x。因此,*p1与x等价,也与p1等价,表示变量x的地址。 ②*x的含义是什么? 先进行x运算,得x的地址,再进行*运算,得到x所指向变量x。可见*x和*p1以及变量x是等价的,即 *x与x等价,表示变量x的值。 ③p2=*p1; 它的作用是将x(x的地址)赋给p2,与p2=p1;等价。如果p2原来指向y,经过重新赋值后它已不再指向y了,而指向了x。 6.2.2 指针变量的引用 ④(*p1)++ 相当于x++。p1仍指向x。结果x的值加1。X的值变为’b’。 ⑤*p1++, 相当于*(p1++)。 由于++在p1的右侧,是“后加”,因此首先对p1的原值进行*运算,得到x的值。式子的取值为:’a’。 然后使p1的值改变,这样p1不再指向x了,而是指向了y变量。 6.2.2 指针变量的引用 6.2.2 指针变量的引用 6.2.2 指针变量的引用 6.2.2 指针变量的引用 6.2.2.2 指针变量的赋值 int x; int *p; 若需要通过指针变量p来操作x,那么可以先让p指向x,这只要将x的地址赋予p p=x; 6.2.2 指针变量的引用 在对指针变量赋值时,要注意以下问题: ①在将一个普通变量的地址赋值给指针变量时,普通变量必须先定义,再使
您可能关注的文档
- 《C1与Winform基础教学资料》CWinform第一章.ppt
- 《C2与Winform基础教学资料》CWinform第一章上机.ppt
- 《C8与Winform基础教学资料》第5章 WinForm编程基础.doc
- 《C9与Winform基础教学资料》第5章 理论.ppt
- 《C10与Winform基础教学资料》第5章 上机.ppt
- 《C13与Winform基础教学资料》第6章 WinForm基础控件.doc
- 《C14与Winform基础教学资料》第6章 理论.ppt
- 《C15与Winform基础教学资料》第6章 上机.ppt
- 《C18与Winform基础教学资料》第7章 ADO.NET简介(作业).doc
- 《C19与Winform基础教学资料》第7章 理论.ppt
最近下载
- ICD-9-CM-3手术与操作国家临床版亚目表.xlsx VIP
- 图形创意(第二版)林家阳 高教 全套课件.ppt
- Unit 2 Helping at home 第1课时 Get ready(教学课件)英语外研版三起四年级上册(新教材).ppt
- 大数据精准营销PPT课件.pptx VIP
- 天线与电波传播课件(第六章)电波传播概论.ppt VIP
- 公司目视化管理手册..pptx VIP
- 非遗工艺数字化呈现的2025年文化传承项目阶段汇报PPT.pptx VIP
- 演讲与口才中职全套完整教学课件.pptx
- CNG及LNG加气站风险管控资料.doc VIP
- 一种拉曼-荧光双模生物传感器及其制备方法与其在miRNA检测中的应用.pdf VIP
文档评论(0)