《c语言指针》PPT课件.ppt

《c语言指针》PPT课件.ppt

ID:52065126

大小:459.00 KB

页数:33页

时间:2020-03-31

《c语言指针》PPT课件.ppt_第1页
《c语言指针》PPT课件.ppt_第2页
《c语言指针》PPT课件.ppt_第3页
《c语言指针》PPT课件.ppt_第4页
《c语言指针》PPT课件.ppt_第5页
资源描述:

《《c语言指针》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C/C++程序设计第十章指针第十章指针§1.指针的基本概念§2.指针变量和指针运算符§3.指针和函数参数§4.指针与数组§5.指针与函数§6.本章小结1指针的基本概念变量是存放在内存上的,内存的每一个字节成为一个单元,每个单元有一个编号,这个编号就是地址,内存是按字节排列的连续空间。定义变量:intk;编译系统根据类型为k分配内存输入变量的值:scanf(“%d”,&k);&k就代表了变量k在内存中的地址以往对变量的访问是通过变量名,这种操作称为直接访问:intk;scanf(“%d”,&k);prin

2、tf(“%d”,k);间接访问C提供了另一种方式,将变量k的地址存放在另一个变量处(假定为pk),通过访问pk,就可以间接地访问变量k,这种方式称为间接访问。变量intk;变量pk中存放k在内存中的地址。intk=100int*pk=&k;变量pk是一个指针变量,指向变量k,存放k的地址,因此指针就是地址。举例分析比较两个程序main(){inta,b,c;a=5;b=10;c=a+b;printf(“%d,%d,%d”,a,b,c);}main(){inta,b,c,*pc;a=5;b=10;pc

3、=&c;c=a+b;printf(“%d,%d,%d”,a,b,*pc);}指针可以指向所有类型的数据指针指向变量--变量的指针(存变量的地址)。指针指向数组--数组的指针(存数组的起始地址)。指针指向函数--函数型指针(存放函数的入口地址)。指针指向指针--指针型指针(存放某指针的地址)。由指针组成的数组--指针数组。2指针变量和指针运算符一、指针变量的定义1.格式:类型*标识符;其中:指针的类型是指针所指变量的类型。*为指针说明符,说明后面的标识符为指针变量(也叫间接访问符)。2.*和&在C中有两个

4、作用:*:乘号(双目)和指针说明符(单目)。&:取址符(单目)和位操作中的“与”二、指针变量的引用对变量k的访问就可以有两种方法:直接访问:通过变量名访问--k间接访问:通过指针变量名—pk例如:intk,*pk;pk=&k;printf(“%d”,k);与printf(“%d”,*pk);完全等价。*pk=0;与k=0;*pk+=1;与k+=1;(*pk)++;与k++;完全等价。区别:定义指针*pk(说明语句)引用指针*pk(执行语句)例子main(){inta,b,c;int*p;//(指针说明)

5、a=100;b=200;p=&c;//(将c的地址赋给p)*p=a+b;//(将a+b的值存入p指向的地址)printf(“%d+%d=%d”,a,b,*p);printf(“%x,%x,%x,%x,%x”,&a,&b,&c,p,&p);}main(){floata,b,c;float*p;a=100.0,b=200.0;p=&c;*p=a+b;printf(“%f+%f=%f”,a,b,*p);printf(“%x,%x,%x,%x,%x”,&a,&b,&c,p,&p);}*与&之间是

6、互逆的intk;int*pk=&k;表示指针pk指向变量k时,有:pk=&k;*pk=k;所以:*(&k)=*pk=k&(*pk)=&k=pk三、指针变量的初始化1.指针变量使用前必须有值。2.指针变量的初值必须是地址值。(不能是整数)3.两种:(1)pk=&k;(赋值语句)(2)intk;int*pk=&k;(说明语句,不是赋值语句)4.可以为指针赋空值(NULL),此时指针不指向任何变量:pk=NULL;关于指针几点说明1.程序中一旦进行了变量说明inta,b,c;则机器自动设置a,b,c的存储区域

7、,每个整数四个字节。2.当a=100,b=200时,则分别存在a,b的空间内。3.为便于了解存储区的位置,用&a表示a的地址,&b表示b的地址,&c表示c的地址。4.如果变量p专门用来存放地址,p=&c,称为指针变量。5.指针变量p自身也有地址,用&p表示,用printf(“%x”,&p)可求得指针自身的存储地址四.指针的运算C仅允许指针作三种运算:1.指针的比较运算(关系)p>q:p指针所指元素位于q所指元素之后时为真1p=q:p指针所指元素位于q所指

8、元素之后(或两指针指向同一元素)时为真1p<=p:p指针所指元素位于q指针所指元素之前(或两指针指向同一元素)时为真1p==q:两指针指向同一元素时为真1p!=q:两指针不指向同一元素时为真12.指针的减法运算条件:必须两指针p,q指向同一数组p-q的结果为p所指元素与q所指元素之间相隔的元素的个数(不是地址值之差,也不是变量值之差)。3.指针与整数的加减运算当一个指针指向一个数组时,指针与一个整数n相加或相减,表示将指针向后或向前移动了n

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。