第8章-指针.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计 第8章 指针 本章将讲述指针的以下几个方面内容: 指针与地址的关系 指针的定义与运算 指针在函数中的应用 指针在数组中的应用 指针是C语言中的一个重要概念。掌握指针的用法,可使程序简洁、高效、灵活,但并不难学。 1.给出程序的运行结果 #include stdio.h main( ) { void swap( ); int a,b; a=2 ;b=1; printf(%d,%d\n,a,b); swap(a,b); printf(%d,%d\n,a,b); } void swap(int x,int y) { int t; t=x;x=y;y=t; } 问题与讨论 指针概念 C语言中,将一个变量的地址形象化地称为该变量的“指针”,意思是通过它能找到以它为地址的存储单元。 一个变量在内存中的所占存储单元的地址就是该变量的指针。 例如: int i;*p; i=6192; p=i; 此时称1000这个存储地址为变量i的指针,而6192是变量i值。 指针概念 这种存放其它存储空间地址的变量p,与我们已学过的变量(普通变量),是完全不同的,它只能用来存放地址,而不能存放其它的数据类型的数据。 把这种用一个地址变量(该存储空间内存放的是另外一个变量存储空间的地址)来指向另外一个变量的关系,称为“指向”关系。 指针概念 当程序执行时,所定义的变量在内存中占有一定的存储单元,并且,对于操作系统来说,每一个存储空间都具有一个确定的编号 —— 地址 int a=3,b=4; float c=4.5,d=8.6; char e=‘x’,f=‘y’; 指针概念 要访问在内存中的变量,在源程序中通过变量名来引用变量。而对于 C 源程序经编译后,变量名称不再存在,而是转换成对应的存储空间的地址。执行程序时,若引用变量,则通过查找相应的地址,再从存储空间中取得相应的值。 称这种通过变量名或地址访问一个变量的方式为“直接访问”方式 需要访问变量a,则首先访问变量 pa 的地址,得到变量 pa 相应存储空间内保存的值(变量 a 的地址),再通过所取得的新的地址访问相应的存储空间的数值。称这种访问方式为 —— “间接访问”方式 变量的指针和指针变量 变量的指针:是指变量的地址 int i; i(在内存中为具体的值)为变量i的指针 指针变量: 是一个变量,它用来存放另一个变量的地址 假设一个指针变量为pointer,让pointer存放变量 i 的地址 pointer=i; 指针变量的 定义: 一般形式: 指针类型 *指针变量名; 指针变量p 变量i 例如:int *p; int i,*p; float f,*fp; 指针类型:表明指针(此变量指向存储空间存放数据)的类型,可以使任意合法的数据类型 “*”表明其后的变量为指针变量  指针变量赋值 通过求地址运算(&)把一个变量的地址赋给指针变量 是求地址运算符(单目运算符):它可以获取某变量所占存储单元的起始地址。 如:int  i=50, *ip,*kp, **p; float x=4.67; ip=i; p=ip; 此时,指针变量ip存放了变量i的内存存储地址, 因此称指针变量ip此时是指向变量i的。 float x, y ,*px=x, *py=y; 想一想scanf()函数的赋值方法: scanf(“%f%f”,x,y); 等价 scanf(“%f%f”,px,py);  都是将从键盘输入的实型数据存入到变量x和y变量所在的存储单元中 2. 同类型指针变量之间可以直接赋值。 注意:要确保两个指针变量的基类型是相同的。 如:float x, *p1, *p2; p1=x;   scanf(“%f”,p1); p2=p1;   即p2指针变量也指向了x变量。 3. 给指针变量赋“空”值 当指针变量没有可以指向的对象时,也可以给指针变量赋NULL值,此值为空值。 例:double

文档评论(0)

海川电子书城 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档