书签 分享 收藏 举报 版权申诉 / 19
上传文档赚钱

类型《C语言程序设计案例教程》课件7.3指针与一维数组.pptx

  • 上传人(卖家):momomo
  • 文档编号:4611234
  • 上传时间:2022-12-25
  • 格式:PPTX
  • 页数:19
  • 大小:4.61MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《C语言程序设计案例教程》课件7.3指针与一维数组.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    C语言程序设计案例教程 语言程序设计 案例 教程 课件 7.3 指针 数组
    资源描述:

    1、CONTENTS 目 录提出问题 引入新课自主学习 明确考点案例分析 交流提升仿真演练 体验探索提出问题 引入新课PART 01数组包含若干个元素,各元素在内存中都占用内存单元,都有一个相应的地址,哪如何通过指针变量来引用数组中的元素呢?提出问题 引入新课自主学习 明确考点PART 02定义一个指向数组元素的指针变量,目的是为了通过指针变量对数组元素进行引用和相关的操作。但由于数组分为两个层次,整个数组和组成数组的各个元素,因此在建立指针变量与数组之间的指向关系时,会有两种不同的情况:考点一:指向一维数组的指针变量1)数组的指针是指向整个数组的起始地址,即数组的第一个元素的地址;2)指针指向一

    2、维数组元素的地址。2、指向一维数组的指针变量的两种形式:(1)将整个数组的地址赋值给指针变量:=;例如:int a10;/*定义a为包含10个整型数据的数组*/int*p;/*定义p为指向整型变量的指针*/p=&a0;或p=a;/*C语言规定,数组名代表数组的第一个元素的地址*/p=&a0;表示把a0元素的地址或为数组的首地址赋给指针变量p,p指向a数组的第一个元素的地址,使指针变量指向数组的首个元素的地址,并非将数组元素的值赋给p。(2)将数组某元素的地址赋值给指针变量:格式为:=&;表示把数组某个元素的地址赋给指针变量,让指针变量指向数组的某个元素。int a10,*p;p=&a2;考点一

    3、:指针的算术运算(1)地址偏移法。地址偏移法是在指针变量的基础上加上偏移地址形成新元素的地址,再通过指针运算符进行引用。考点二:通过指针变量引用数组元素【例1】、通过指针变量p对数组a的每一个元素进行输入和输出的操作。main()int*p,i,a10;p=a;for(i=0;i10;i+)scanf(%d,p+i);for(i=0;i10;i+,p+i)printf(%d,*p);(2)下标法:如果p的初值为&a0,则:(1)p+i和a+i就是ai的地址,或者说它们指向a数组的第i个元素。(2)*(p+i)或*(a+i)就是p+i或a+i所指向的数组元素,即ai。例如,*(p+5)或*(a+

    4、5)就是a5。(3)指向数组的指针变量也可以带下标,如pi与*(p+i)等价。考点二:通过指针变量引用数组元素【例2】输出数组中的全部元素。(下标法)main()int a5,i,*p;p=a;for(i=0;i5;i+)pi=i;for(i=0;i5;i+)printf(a%d=%d ,i,ai);(3)指针移动法。指针移动法是通过对指针变量进行运算,改变其指向,使其在数组范围内移动,指向不同的元素来达到引用的目的。运行结果为:a0=0 a1=1 a2=2 a3=3a 4=4【例3】把一个一维数组中的元素按初始顺序的倒序排列。main()int a10=12,3,45,6,20,30,78,

    5、50,66,81;int *p,*q,i,t;printf(数组元素的初始顺序:n);for(p=a,i=0;i10;i+)printf(%4d,*(p+);for(p=a,q=a+9,i=0;i5;i+,p+,q-)t=*p;*p=*q;*q=t;printf(n数组元素的最终顺序:n);for(p=a,i=0;i 10;i+)printf(%4d,*(p+);下标法:用 ai 的形式存取数组元素。地址法:用p+i或a+i表示元素的地址,*(a+i)、pi或*(p+i)的形式表示数组元素。指针法:用指针变量p指向数组的首地址,然后通过移动指针存取数组元素。如 p=a,p+。考点三:数组元素的

    6、访问形式若有数组及指针定义 int a5,*p=a;下标法:a0 a1 a2 a3a4指针法:*p*(p+1)*(p+2)*(p+3)*(p+4)p0 p1p2p3 p4 *a*(a+1)*(a+2)*(a+3)*(a+4)元素地址 p p+1 p+2p+3p+4 a a+1a+2 a+3a+4数组元素的访问小结:假设 int i,a10,*p=a;表现形式含义&a0 ap 一维数组首地址&a i a+ip+i 一维数组下标为 i 的元素地址a0*a*p 一维数组下标为 0 的元素的值a i*(a+i)*(p+i)一维数组下标为 i 的元素的值考点三:数组元素的访问形式注意:数组名是一个常量地

    7、址,不允许重新赋值。指针变量是一个变量地址,可以重新赋值。例如有定义:int a10,*p;p=a;p+合法;但a+不合法(a是数组名,代表数组首地址,是常数地址。)考点四:指针运算符的自增自减运算形式(*p)+表示先取*p的值a0,再使所指的元素的值加1。+(*p)即+*p:表示先使*p的值a0加1,再取*p的值a0。*(p+)即*p+是先取*p的值,后使p加1,指向下一个元素。*(+p)即*+p是先使p加1,指向下一个元素,再取*p的值。考点四:指针运算符的自增自减运算形式 main()int a3,*p=a;a0=10;a1=20;a2=30;printf(“%dn”,*p+);prin

    8、tf(“%dn”,*+p);答案为:10 30 例如:对照下列程序,请仔细思考为什么是这样的答案?main()int a3,*p=a;a0=10;a1=20;a2=30;printf(“%dn”,+*p);printf(“%dn”,*+p);答案为:11 20 main()int a3,*p=a;a0=10;a1=20;a2=30;printf(%dn,(*p)+);printf(%dn,a0);printf(%dn,*+p);答案为:10 11 20案例分析 交流提升PART 03【例1】有以下程序运行后的输出结果是()。main()char s=159,*p;p=s;printf(%c,*

    9、p+);printf(%c,*p+);A)15B)16C)12D)59【例2】、有以下程序运行后的输出结果是()#include main()int a=1,2,3,4,5,6,7,8,9,10,11,12,*p=a+5,*q=NULL;*q=*(p+5);printf(%d%dn,*p,*q);A)运行后报错 B)6 6C)6 11D)5 10【例3】设有定义语句 int x6=2,4,6,8,5,7,*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是()A)for(i=0;i6;i+)printf(%2d,*(p+);B)for(i=0;i6;i+)printf(%2d

    10、,*(p+i);C)for(i=0;i6;i+)printf(%2d,*p+);D)for(i=0;i6;i+)printf(%2d,(*p)+);仿真演练,体验探索PART 041、写出以下程序运行后的输出结果是()main()int a=1,2,3,4,5;int *p=a+3;printf(“%d,%d,%dn”,*p,*(p+1),*p+3);2、写出以下程序运行后的输出结果是()main()int a4=10,20,30,40,*p=a;printf(%dn,*p+);printf(%dn,+*p);printf(%dn,(*p)+);3、以下程序运行后的输出结果是()。main()char a=Language,b=Programe;char*p1,*p2;int k;p1=a;p2=b;for(k=0;k=7;k+)if(*(p1+k)=*(p2+k)printf(%c,*(p1+k);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《C语言程序设计案例教程》课件7.3指针与一维数组.pptx
    链接地址:https://www.163wenku.com/p-4611234.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库