《数组和指针》PPT课件.ppt
《《数组和指针》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数组和指针》PPT课件.ppt(62页珍藏版)》请在三一办公上搜索。
1、1,第四部分 数组,一、数组概述,数组是具有相同数据类型的元素序列。在内存中,它占据一组连续的内存空间。数组的每一项都是一个变量,称为元素。,实际上,数组是一组相关的内存位置,它们具有相同的名字和类型。为了引用数组中的特定位置或元素,需指定数组名和数组中特定元素的位置编号。,当若干数据具有相同的数据类型并且互相有一定关系时,把它们组织成数组非常有效。,2,数组分为一维数组、二维数组和三维及以上的数组,通常把二维数组称为矩阵,三维及以上的数组成为多维数组。,和其他变量一样,在使用数组之前需要对数组进行定义。,3,形式:,类型名,数组名,常量表达式,注:1)类型名:数组中的元素的类型(如 int
2、char 等),2)数组名的命名规则同前面的变量的命名规则。,3)常量表达式:表示数组中数组元素的个数,即数组的 长度。,不允许为变量,既不允许对数组做动态定义。数组的大小一旦定义即已固定。,例如:定义一个包含3个元素的整型数组a:,int,例如:定义一个包含20个元素的字符型数组c:,char c20;,3;,a,例:int a3,b5,c10;,一个定义中,可以同时说明多个相同类型的数组。,例:char c,s30;,普通变量和数组可以出现在同一个定义中。,二、一维数组的定义形式:,4,注:4)数组名:是一个地址常量,代表整个数组的首地址。,例如:int a2;,3000H,3001H,3
3、002H,3003H,3004H,3005H,3006H,数组a所占的内存,couta;,输出结果为:3000,a的值,5,数组元素的引用:把数组中的每个元素当成普通的变量来使用,就是所谓的“数组元素的引用”。,三、数组元素的引用,对数组中某一个元素进行访问是通过数组名加下标实现的,也就是说,在数组名字后面的方括号 内加入特定元素的位置编号,就可以应用这些元素中的任何一个了。,6,下标的范围:下标,形式:数组名称下标表达式,表达式的值必须为整数,例如:int a3;,该数组中包含3个元素,分别为:,2)数组元素默认的下标值从0开始。,a0、a1、a2,注:1)下标表达式必须为整型常量或者整型的
4、表达式。,0,长度-1,3)数组不能整体引用。如 不能用a表示a0到a2的3个元素。,7,void main()int a10;,例题:定义一个具有10个元素的整型数组a,给数组元素赋值,并分别将其按正序、倒序输出。,/给10个元素分别赋值为0 1 2 3 49,a0=0;,a1=1;,a2=2;,a9=9;,i,i,ai=i;,for(i=0;i10;i+),ai=i;,/输出数组的10个元素,couta0;,1,2,9,i,for(i=0;i10;i+),coutai;,/倒序输出数组的10个元素,for(i=9;i=0;i-),coutai;,8,答:普通变量,例题1:输入10名同学的成
5、绩,统计其中的最高分、最低分和平均分。,#include using namespace std;void main(),如何存储?,答:数组,如果成绩为浮点型数据,该数组如何定义?,float score10;,如果分别用max,min,aver表示3个成绩,则该如何定义?,float max,min,aver;,9,如何求最高分,将其保存在max中?,max=score0;,if(score1max),max=score1;,if(score2max),max=score2;,if(score3max),max=score3;,if(score9max),max=score9;,if(sc
6、orei max),max=scorei;,for(i=1;i10;i+),min,min,min,min,低,10,如何求总分,将其保存在sum中?,sum=score0;,sum=sum+score1;,sum=sum+score2;,sum=sum+score3;,sum=sum+score9;,for(i=1;i10;i+),sum=sum+scorei;,11,max=score0;for(i=1;imax)max=scorei;,void main()float score10;float max,min,aver;,如何输入10个成绩?,for(i=0;i10;i+),cin,s
7、corei;,int i;,如何求最高分,将其保存在max中?,如何求最低分,将其保存在min中?,min=score0;for(i=1;i10;i+)if(scoreimin)min=scorei;,如何求平均分,并保存在aver中?,sum;,sum=score0;for(i=1;i10;i+)sum=sum+scorei;,aver=sum/10;,cout“最高分:”max“,最低分:”min“,平均分:”aver;,如何将结果输出?,12,注意:在求最大值、最小值、平均值时,循环次数及循环变量的取值相同,所以可以简化程序为:,for(i=1;i10;i+),max=score0;,i
8、f(scoreimax)max=scorei;,min=score0;,if(scoreimin)min=scorei;,sum=score0;,sum=sum+scorei;,aver=sum/10;,13,14,四、数组的初始化,可以在定义数组的同时给数组元素赋值。,1)例:int a3=1,2,3;,注:初值列表用大括号括起来,各数值间用逗号隔开。从第一个元素开始依次赋值。,2)、直接用字符串常量给字符赋值,例如:char s4=“abc”;,注:此时可以把大括号省略。即:char s4=“abc”;注:也可以省略长度。即char s=“abc”;,在C+中,更多的使用string类来表
9、示字符串对象。该部分内容在第二章中详细介绍。,15,课程回顾,1、定义一个具有5个元素的浮点型的数组x,应使用的语句为:。,float x5;,2、若有定义int a3;则:数组a中共有 个元素。引用方式分别为:、。,a0,a1,a2,3,16,sum=0;,i3,sum=sum+ai;,17,4.下列程序中有一处错误,请指出并给出修改意见(2009.1)#include usingnamespacestd;intmain()constintnum=20;intscoresnum;for(inti=1;i=num;i+)scoresi=i;return0;,下标越界。改为,18,五、二维数组的
10、定义和引用,二维数组:每个元素带有两个下标,在逻辑上可以把二维数组看成是一个具有若干行和列的表格或者矩阵。,1、定义:,类型名称,数组名称,常量表达式1,常量表达式2,二维数组的行数。,二维数组的列数。,例如:定义一个具有2行3列的整型数组a,int a23;,分析:1)数组名称:a,2)共有2 x 3=6个元素,注意:不能写成 int a2,3;,19,2、引用,格式:,数组名称行下标列下标,例如前例中的a11等,注:1)下标为整型表达式,而且不能越界。,2)两个下标分别放在方括号中。,例如:a1,2 是错误的,20,3)逻辑结构如下:,第1行,第2行,第1列,第2列,第3列,a00,a01
11、,a02,a10,a11,a12,int a23;,注:每个元素有两个下标:第1个方括号中的下标代表行号,称为行下标 第2个方括号中的下标代表列号,称为列下标,4)存储方式:,按行存放,即在内存中先存放第1行的元素,再存放第二行的元素。,21,/按行输出各个元素赋值,a00,a00,例题:程序运行时给数组元素赋值,并输出各数组元素。,void main()int a23,i,j;,/给各个元素赋值,cin,只给a00元素赋值:,只给第1行元素赋值:,for(j=0;j3;j+),j,for(j=0;ja0j;,只输出a00元素:,cout,只输出第0行元素:,for(j=0;j3;j+),j,
12、for(i=0;i2;i+)for(j=0;j3;j+)cout aij);,coutendl;,i,for(i=0;i2;i+),22,六 字符数组,字符数组:用来存放字符数据的数组。字符数组中的 一个元素存放一个字符。,一、定义:,char 数组名长度,例如:char c5=c,h,i,n,a;,在内存中占5个字节,a0,a1,a2,a3,a4,c,h,i,n,a,?这种定义方式正误?,int c5=c,h,i,n,a;,23,2、直接用字符串常量赋值,例如:char s=“abc”;,也可以省略大括号:char s=“abc”;,1)char s=A,B,C;,2)char s=A,B,
13、C,0;,说明:,3)char s10=A,B,C,0;,4)char s=“abc”;,注意:如果一个字符数组中包含一个以上0,则遇第一个0时输出就结束。,24,课程回顾,1.下面关于数组的初始化正确的是()(2009.10)A.charstr=a,b,c;B.charstr2=a,b,c;C.charstr12=a,b,e,d;D.charstr=a,b,c;,A,2.数组的元素默认的下标值从 开始。,下标的范围:下标。,0,0,长度-1,25,第五部分 指针,变量和数据在内存中存放都要占用一定数量的内存空间(单位为字节)。计算机内存中的每个字节都有一个编号,该编号称为内存地址即指针。,变
14、量的地址:每个变量的地址是指该变量所占存储单元 的第一个字节的地址。,指针:由于通过地址能找到所需的变量单元,可以说,地址“指向”该内存单元。所以,c+语言中又将 地址形象化的称作“指针”。即某个变量的指针就是该变量的地址。,一、指针和地址的概念,26,指针变量:C+中有一种特殊的变量可以存放普通变量的地址,称为指针变量。而要取得一个普通变量a的地址可使用&运算符(取地址运算符)。例如:若有变量a,则:&a即表示变量a的地址。即:专门存放指针(地址)的变量称为指针变量。,假设p是一个指针变量,a是一个普通变量,则p中可存放a变量的地址,操作语句为:,p=,经过此操作后,我们说p指向了变量a。,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组和指针 数组 指针 PPT 课件

链接地址:https://www.31ppt.com/p-5520193.html