欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > PPT文档下载
    分享到微信 分享到微博 分享到QQ空间

    第04章C数组与指针.ppt

    • 资源ID:517398       资源大小:783.50KB        全文页数:15页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第04章C数组与指针.ppt

    1第四章第四章 数组与指针数组与指针 4.1 4.1 数组的概念与声明数组的概念与声明 4.1.1 4.1.1 数组的概念数组的概念 数组是一个由类型相同的变量组成的线性序列。概念上,它如数组是一个由类型相同的变量组成的线性序列。概念上,它如同代数中的向量:同代数中的向量:(a1,a2,.,an)。4.1.2 4.1.2 数组的声明数组的声明 与简单变量一样,在使用前必须声明之。其声明形式如下:与简单变量一样,在使用前必须声明之。其声明形式如下:int a10;/声明声明 a 是一个长度为是一个长度为10的整型数组,的整型数组,a是数组名;是数组名;数组数组a中元素的变量名以及它们的存储空间情况,如下所示:中元素的变量名以及它们的存储空间情况,如下所示:2说明:说明:(1 1)数组中各元素的下标是从)数组中各元素的下标是从0 n-1。即它们的变量名依次为:。即它们的变量名依次为:通常,它们也被称为通常,它们也被称为“下标变量下标变量”。(2 2)数组中各元素所占用的存储单元,它们的地址是连续的(即地)数组中各元素所占用的存储单元,它们的地址是连续的(即地址相邻)。如下所示:址相邻)。如下所示:变量名:变量名:地地 址:址:34.1.3 4.1.3 数组的初始化数组的初始化 是指:在数组声明时为其中所有的下标变量赋值。是指:在数组声明时为其中所有的下标变量赋值。int a10=1,2,3,4,5,6,7,8,9,10;int a10=1,2,3,4,5,6,7,8,9,10;说明:说明:初始化的几种形式(参见初始化的几种形式(参见P.75P.75)44.1.4 4.1.4 下标变量的引用下标变量的引用 下标变量可以像简单变量一样地被使用下标变量可以像简单变量一样地被使用,而且而且元素的下标可以是元素的下标可以是常量、变量、表达式。常量、变量、表达式。例如:例如:ai=ai-1+1;cinai;coutai;等等。等等。注意:注意:引用数组名将表示对数组进行整体操作,除非作为引用数组名将表示对数组进行整体操作,除非作为函数的参数或字符串时,否则,其他情况下,必须以引函数的参数或字符串时,否则,其他情况下,必须以引用下标变量的方式来处理数组(如:赋值、输入、输出用下标变量的方式来处理数组(如:赋值、输入、输出等等操作)。等等操作)。54.1.5 4.1.5 数组的基本操作数组的基本操作参见参见P.76P.76(1 1)数组元素的输入)数组元素的输入(2 2)数组元素的输出)数组元素的输出(3 3)数组元素的求和)数组元素的求和(4 4)求数组中的最小(大)元素的值)求数组中的最小(大)元素的值 (5)求数组中的最小(大)元素的下标)求数组中的最小(大)元素的下标 64.1.6 4.1.6 数组的应用数组的应用 数组主要用于存放并且处理一组类型相同的数据。数组主要用于存放并且处理一组类型相同的数据。如:排序、检索等操作。如:排序、检索等操作。参见参见P.77/P.77/【例】【例】4.34.3、4.4;4.4;P.95/P.95/【例】【例】4.13-4.14;4.13-4.14;7例例4-1 一维数组的排序一维数组的排序(非递减非递减)。void main()int a=79,97,68,77,89,84,62,55,78,98,79,67,85,71,65,80,100;int i,j,k,x,temp,len;len=sizeof(a)/sizeof(int);for(i=0;ilen-1;i+)/该排序法被称为该排序法被称为“选择排序选择排序”法法x=ai;k=i;for(j=i+1;jx)x=aj;k=j;temp=ai;/ai与与ak交换值交换值ai=ak;ak=temp;for(i=0;ilen;i+)cout a it;sizeof是运算符,其语法形式:是运算符,其语法形式:sizeof(数组名或变量名或类型名数组名或变量名或类型名)运算结果为该数组或变量或类型所占运算结果为该数组或变量或类型所占内存的字节数。内存的字节数。8例例4-2 对一对一批批学生的百分制成绩,统计出学生的百分制成绩,统计出其中其中100分、分、9099分、分、8089分、分、09分的人数。分的人数。#define NUM 20void main()int scoreNUM;/声明成绩数组声明成绩数组scoreint counter11;/声明声明计数器计数器数组数组counterint i;srand(unsigned)time(NULL);for(i=0;iNUM;i+)scorei=(int)(rand()%101);/利用随机函数产生成绩利用随机函数产生成绩for(i=0;i11;i+)counteri=0;/计数器数组计数器数组counter置置0for(i=0;iNUM;i+)counter scorei/10+;/利用利用counter数组数组计数计数for(i=0;i11;i+)if(i!=10)cout(i*10)-(i*10+9):counter iendl;else cout(i*10):counter iendl;9课外练习课外练习关于一维数组关于一维数组(1 1)阅读理解程序阅读理解程序 P.76基本操作;基本操作;P.77/【例】【例】4.3、4.4;P.95/4【例】【例】4.134.14;(2 2)参见参见P.100三、程序填空三、程序填空/1、2、3、5;(3 3)编程序:)编程序:将一个已知数组将一个已知数组a中的元素颠倒存放。中的元素颠倒存放。例如,原来为:(例如,原来为:(a1,a2,a3,a4,an),),处理后为:(处理后为:(an,an-1,a3,a2,a1)。)。(4 4)编程序:输入)编程序:输入n(nn(n可变,但不超过可变,但不超过20)20)个整数,输出它们的平个整数,输出它们的平均值以及所有超过平均值的数。均值以及所有超过平均值的数。10 4.2 4.2 二维数组的概念与声明二维数组的概念与声明 4.2.1 4.2.1 二维数组的概念二维数组的概念4.2.3 4.2.3 二维数组的声明二维数组的声明4.2.6 4.2.6 二维数组的基本操作二维数组的基本操作 课外练习:课外练习:p.104/四四-1.4.2.3 4.2.3 二维数组的声明二维数组的声明参见参见P.80P.804.2.4 4.2.4 二维数组的内存情况二维数组的内存情况4.2.5 4.2.5 二维数组的初始化二维数组的初始化11 4.3 4.3 字符数组与字符串字符数组与字符串 “字符串的内存情况字符串的内存情况”、“处理处理字符串的库函数字符串的库函数”参见参见P.84 课外练习课外练习参见参见P.100P.100二、读程序,写运行结果二、读程序,写运行结果/2./2.12 4.4 4.4 指针及其与数组的关系指针及其与数组的关系 4.4.4 4.4.4 指针与数组指针与数组参见参见P.87P.874.4.1 4.4.1 指针的概念指针的概念参见参见P.35P.354.4.2 4.4.2 指针的运算指针的运算4.4.3 4.4.3 利用指针动态申请和释放内存空间利用指针动态申请和释放内存空间运算符运算符newnew与与deletedelete4.4.5 4.4.5 指针与字符串指针与字符串参见参见P.92P.9213 关于指针的一些说明及例子关于指针的一些说明及例子若有以下变量声明:若有以下变量声明:int a=2,*p=&a;则两者的物理关系如下所示:则两者的物理关系如下所示:2pa3f00e02p变量名变量名:a地址值地址值:3f00e0变量值变量值:2 由于变量的地址值(由于变量的地址值(&变量名)具体是多少,对程序而言,变量名)具体是多少,对程序而言,通常是无关紧要的。因此,两者的关系可以简单表示为:通常是无关紧要的。因此,两者的关系可以简单表示为:14pa1称为称为p指向指向a若有下面语句:若有下面语句:int a=1,*p;p=&a;int a=1,*p=&a;等价与等价与则它们的物理关系可以如下图所示:则它们的物理关系可以如下图所示:若接着执行下面语句:若接着执行下面语句:a=2;*p=3;2pa3pa若接着执行:若接着执行:couta=aendl;cout*p=*pendl;则输出:则输出:由此可见,这时的由此可见,这时的*p与与a是等价的是等价的它也可以作为它也可以作为变量变量a的的“名字名字”来使用!来使用!a=3*p=3 进一步而言,由于指针进一步而言,由于指针p也是变量,因此我们还也是变量,因此我们还可以如下定义另一个指向指针变量可以如下定义另一个指向指针变量p的指针变量的指针变量q:int *q=&p;这时,由于这时,由于*q与与p等价,因此等价,因此*q 与与*p、a就都是等就都是等价的了价的了它们都可以作为变量它们都可以作为变量a的的“名字名字”来使用!来使用!q3pa切记:切记:每当一个指针每当一个指针(p)(p)指向一个变量指向一个变量(a)(a)时,时,*指针名指针名(*p)p)就相当于该变量就相当于该变量(a)(a)的一个的一个“别名别名”也叫做也叫做:通过指针通过指针(p)(p)间接访问变量间接访问变量(a)(a)!15paa1为什么声明指针时需要指定类型呢?而指针的类型又有什么作用呢?为什么声明指针时需要指定类型呢?而指针的类型又有什么作用呢?我们来看下面的情况:我们来看下面的情况:int a=1,*pa=&a;char ch=A,*pch=&ch;pchchApafa30fa31fa32fa33pchfd60fd61 在前面我们已经知道,指针在前面我们已经知道,指针papa、pchpch的值分别是变量的值分别是变量a a、chch的的首地址首地址而已而已。那么每当遇到。那么每当遇到*papa、*pchpch时,系统是如何知道时,系统是如何知道papa指向的变量占用了指向的变量占用了4 4个字节、而个字节、而pchpch指向的变量只占用了指向的变量只占用了2 2个字节呢?个字节呢?.这就是为什么声明指针时需要指定类型!这就是为什么声明指针时需要指定类型!变量占用的字节地址变量占用的字节地址ach切记:切记:每个指针可以指向相同类型每个指针可以指向相同类型的任何变量,但决不允许指向不的任何变量,但决不允许指向不同类型的变量!如:同类型的变量!如:int a,b,int a,b,*p;p;char ch;char ch;p=&a;/p=&a;/此时,此时,p p指向指向a a p=&b;/p=&b;/现在,现在,p p指向指向b b p=&ch;/p=&ch;/错误!不能指向错误!不能指向chch

    注意事项

    本文(第04章C数组与指针.ppt)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开