第一节 指针基本概念第二节 变量的指针第三节 指针与数组第ppt课件.ppt

第一节 指针基本概念第二节 变量的指针第三节 指针与数组第ppt课件.ppt

ID:59214288

大小:227.00 KB

页数:50页

时间:2020-09-26

第一节 指针基本概念第二节 变量的指针第三节 指针与数组第ppt课件.ppt_第1页
第一节 指针基本概念第二节 变量的指针第三节 指针与数组第ppt课件.ppt_第2页
第一节 指针基本概念第二节 变量的指针第三节 指针与数组第ppt课件.ppt_第3页
第一节 指针基本概念第二节 变量的指针第三节 指针与数组第ppt课件.ppt_第4页
第一节 指针基本概念第二节 变量的指针第三节 指针与数组第ppt课件.ppt_第5页
资源描述:

《第一节 指针基本概念第二节 变量的指针第三节 指针与数组第ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第九章指针第一节指针基本概念第二节变量的指针第三节指针与数组第四节指针与字符串第五节指针与函数第九章指针关于地址:9.1指针的概念变量是以字节为单位存放在内存上的,每一个字节成为一个单元,在内存中每个单元有一个编号,这个编号就是地址,内存是按字节排列的连续空间。定义变量:intk;编译系统根据类型为k分配内存。输入变量的值:scanf(“%d”,&k);&k就代表了变量k在内存中的地址。以往对变量的访问是通过变量名,这种操作称为直接访问:intk;scanf(“%d”,&k);printf(“%d

2、n”,k);C提供了另一种方式,将变量k的地址存放在另一个变量处(假定为pk),通过访问pk,就可以间接地访问变量k,这种方式称为间接访问。变量intk;变量pk中存放k在内存中的地址。变量pk就是一个指针变量,指向变量k,存放k的地址因此:指针就是地址。100intk=100&k&kint*pk9.1指针的概念(续)谁的地址?有何特点?*9.1指针的概念(续)main(){inta,b,c;a=5;b=10;c=a+b;printf(“%d,%d,%d”,a,b,c);}main(){inta,b

3、,c,*pc;a=5;b=10;pc=&c;c=a+b;printf(“%d,%d,%d”,a,b,*pc);}利用变量c的变量名直接访问。利用指针变量*pc间接访问变量c。比较两个程序指针可以指向所有类型的数据。指针指向变量--变量的指针(存变量的地址)。指针指向数组--数组的指针(存数组的起始地址)。指针指向函数--函数型指针(存放函数的入口地址)。指针指向指针--指针型指针(存放某指针的地址)。由指针组成的数组--指针数组。指针是定位其他数据类型的特殊类型的数据(存放其他数据的地址)。9.1指

4、针的概念(完)9.2变量的指针一个指针,指向一个变量一、指针变量的定义1格式:类型*标识符int*pa;其中:指针的类型,是指针所指的变量的类型(基类型)*为指针说明符,说明后面的标识符为指针变量(也叫间接访问符)inta,*pa;pa=&a;将变量a的地址赋给指针pa*pa=a;通过间接访问符可以访问变量a2说明:(1)一个指针指向同一种类型的变量(2)*和&在C中有两个作用:*:乘号(双目)和指针说明符(单目)&:取址符(单目)和位操作中的“与”9.2变量的指针(续)intk;int*pk;当指

5、针pk指向变量k时,有:pk=&k;*pk=k;所以:*(&k)=*pk=k&(*pk)=&k=pk(3)*与&之间是互逆的二、指针变量的初始化1、指针变量使用前必须有值2、指针变量的初值必须是地址值(不能是整数)3、方法有两种:(1)pk=&k;(2)intk;int*pk=&k;(此句不是赋值语句)地址:数组名&变量名4、可以为指针赋空值(NULL),此时指针不指向任何变量pk=NULL;9.2变量的指针(续)三、指针变量的引用对变量k的访问就可以有两种方法:直接访问:通过变量名--k间接访问:

6、通过指针--pkintk,*pk;pk=&k;printf(“%d”,k);与printf(“%d”,*pk);完全等价*pk=0;与k=0;*pk+=1;与k+=1;(*pk)++与k++;区别:定义指针*pk引用指针:*pkmain(){inta,b,c;int*p;(指针说明)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

7、,&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);}100200300abcp9.2变量的指针(续)1、程序中一旦进行了变量说明inta,b,c;则机器自动设置a,b,c的存储区域,每个整数两个字节。2、当a=100,b=200时,则分别存在a,b的空间内。3、为便于了解存储区的位置,

8、用&a表示a的地址,&b表示b的地址,&c表示c的地址。4、变量p存放地址,p=&c,称为指针变量。5、指针变量p自身也有地址,用&p表示。printf(“%x”,&p)可求得指针自身的存储地址。9.2变量的指针(续)四、变量的指针应用---作函数的参数主函数内,输入两个整数,调用一个功能函数,交换两个整数的大小。9.2变量的指针(续)main(){inta,b;printf(“Entertwonumbers:”);scanf(“%d,%d”,&a,&b);pri

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

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

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