山东大学:《Visual C++程序设计》第6章 数组(张晓如)

第6章组
2021/2/24 1 第6章 数组

数组aray)的定义及应用 什么是数组保存相同类型数据的内存单元集合。 维数组的定义 定义格式 类型名数组名[常量表达式1 ,数组名2常量表达式2] 即: type Arraynamelsizel ArrayName2 size2] 2021/224
2021/2/24 2 数组(array)的定义及应用 什么是数组 保存相同类型数据的内存单元集合。 定义格式 类型名 数组名[常量表达式1] [, 数组名2[常量表达式2]……]; 即:type ArrayName1[size1], ArrayName2[size2],…; 一维数组的定义

如:inta5;∥定义了一个整数型数组,数组名为a,数组 /的大小为5,即有5个元素:a0l,a1la12,a|3],a4。 static float yl50];/定义了数组y,每个元素的 ∥值为实型,存储类型为静态的。 char strl10;∥定义了数组str,有10个元素, /每个元素的值为字符。 注:(1)数组必须先定义后使用。 (2)“数据类型”是指数组元素的数据类型, 如 int、char、 register、 static、auto等。 (3)数组名与变量名一样,必须遵循标识符命名 规则 (4)数组元素的下标,是元素相对于数组起始地 1a4址的偏移量,所以从0开始顺序编号
2021/2/24 3 注:(1)数组必须先定义后使用。 (2)“数据类型”是指数组元素的数据类型, 如 int、char、register、static、auto等。 (3)数组名与变量名一样,必须遵循标识符命名 规则。 (4)数组元素的下标,是元素相对于数组起始地 址的偏移量,所以从0开始顺序编号。 如: int a[5]; //定义了一个整数型数组,数组名为a,数组 //的大小为5,即有5个元素:a[0], a[1], a[2], a[3], a[4]。 static float y[50];//定义了数组y,每个元素的 //值为实型,存储类型为静态的。 char str[10]; //定义了数组str,有10个元素, //每个元素的值为字符

(5)“常量表达式”必须用方括号括起来,指的是 数组的元素个数(又称数组长度),它是一个整型 值,其中可以包含常数、符号常量,还可以用宏定 义标识符常量或用 const说明的标识符常量,但不能 包含变量。 如:# define asd256 const int SIzE=500 intx1[ASD*2];定义x1,含512个元素 float yyASD+SLEl;/定义y,含756个元素 char csa; 定义cs,含97个元素 如下说明不允许:intn; cin>>n float tn];∥定义t前不知道n的值 2021/224
2021/2/24 4 (5)“常量表达式”必须用方括号括起来,指的是 数组的元素个数(又称数组长度),它是一个整型 值,其中可以包含常数、符号常量,还可以用宏定 义标识符常量或用const说明的标识符常量,但不能 包含变量。 如:#define ASD 256 const int SIZE=500; … int x1[ASD*2]; //定义x1,含512个元素 float yy[ASD+SIZE];//定义yy,含756个元素 char cs[‘a’]; //定义cs,含97个元素 如下说明不允许:int n; cin>>n; float t[n];//定义t前不知道n的值

(6)数组元素的个数必须是一个正整数。 如:# define pi314 int al [ PI3];∥错误,因为P3是实数 float a2[int(PⅠ*3)l;∥正确 (7)数组名中存放的是一个地址常量,它代表整 个数组的首地址。同一数组中的所有元素, 按其下标的顺序占用一段连续的存储单元。 (8)数组名的作用域与变量的作用域相同。当把 数组定义为局部变量时,作用域为块作用域, 当定义为全局变量时,作用域为文件作用域。 2021/224 5
2021/2/24 5 (6)数组元素的个数必须是一个正整数。 如:#define PI 3.14 … int a1 [PI*3]; //错误,因为PI*3是实数 float a2[int(PI*3)]; //正确 (7)数组名中存放的是一个地址常量,它代表整 个数组的首地址。同一数组中的所有元素, 按其下标的顺序占用一段连续的存储单元。 (8)数组名的作用域与变量的作用域相同。当把 数组定义为局部变量时,作用域为块作用域, 当定义为全局变量时,作用域为文件作用域

维数组的使用 引用一维数组的形式: 数组名[下标表达式 注:1.“下标表达式”可以是任何非负整型数据, 取值范围是0~(元素个数-1) 如:inti,j float x20 y, Z; xi+j*2=+j;元素引用是合法的 Fxy*2: 元素引用是不允许的 2021/224 6
2021/2/24 6 一维数组的使用 引用一维数组的形式: 数组名[下标表达式] 注:1.“下标表达式”可以是任何非负整型数据, 取值范围是0~(元素个数-1)。 如:int i,j; float x[20],y,z; … x[i+j*2]=i+j; //元素引用是合法的 z=x[y*2]; //元素引用是不允许的

特别强调:在运行C++语言程序过程中,系统并不 自动检验数组元素的下标是否越界。因此在编写程 序时,保证数组下标不越界是十分重要的 如:intm,a|20; a|m*2+1=200;∥应保证0<=m*2+1<20 cout<<aa 21l /下标出界,输出一个不确定的值 2021/224
2021/2/24 7 特别强调:在运行C++语言程序过程中,系统并不 自动检验数组元素的下标是否越界。因此在编写程 序时,保证数组下标不越界是十分重要的。 如:int m,aa[20]; … aa[m*2+1]=200; //应保证0<=m*2+1<20 cout<<aa[21]; //下标出界,输出一个不确定的值

2.一个数组元素,实质上就是1个变量,它具有和相 同类型单个变量一样的属性,可以对它进行赋值和参 与各种运算。 3.在C++中,数组作为一个整体,不能参加数据运 算,只能对单个的元素进行处理。 如:inta|5,bb|5; cin>>aa ∥误 cout<<aa 误 4.同类型的数组之间不能相互赋值。 如:bb=a; 错误 2021/224 8
2021/2/24 8 2.一个数组元素,实质上就是1个变量,它具有和相 同类型单个变量一样的属性,可以对它进行赋值和参 与各种运算。 3.在C++中,数组作为一个整体,不能参加数据运 算,只能对单个的元素进行处理。 如:int aa[5],bb[5]; cin>>aa; //错误 cout<<aa; //错误 4 .同类型的数组之间不能相互赋值。 如: bb=aa; //错误

例:输入五个实数,并求出这五个实数的平均值。 61 若输入数:486.5610 则输出: 这五个数的平均值为:69 2021/224 9
2021/2/24 9 例1:输入五个实数,并求出这五个实数的平均值。 若输入数:4 8 6.5 6 10 则输出: 这五个数的平均值为:6.9 61

维数组的初始化 初始化格式: 数据类型数组名常量表达式={初值表} (1)如果对数组的全部元素赋以初值,定义时可以不 指定数组长度(系统根据初值个数自动确定)。 如果被定义数组的长度,与初值个数不同,则数 组长度不能省略。 如:intz={0,1,2,3,4,5,6,7,8}; ∥编译器认定z的元素个数为9 intx10}={0,1,2,3,4,5,6,7,8,%}; 2021/224 10
2021/2/24 10 一维数组的初始化 初始化格式: 数据类型 数组名[常量表达式]={初值表} (1)如果对数组的全部元素赋以初值,定义时可以不 指定数组长度(系统根据初值个数自动确定)。 如果被定义数组的长度,与初值个数不同,则数 组长度不能省略。 如:int z[ ]={0,1,2,3,4,5,6,7,8}; //编译器认定z的元素个数为9 int x[10]={0,1,2,3,4,5,6,7,8,9};
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 山东大学:《Visual C++程序设计》第8章 指针和引用(张晓如).ppt
- 山东大学:《Visual C++程序设计》第5章 函数和编译预处理(张晓如).ppt
- 山东大学:《Visual C++程序设计》第2章 数据类型、运算符和表达式(张晓如).ppt
- 山东大学:《Visual C++程序设计》第9章 类和对象(张晓如).ppt
- 山东大学:《Visual C++程序设计》第3章 简单的输入/输出(张晓如).ppt
- 山东大学:《Visual C++程序设计》第7章 结构体、共同体 和枚举类型(张晓如).ppt
- 山东大学:《Visual C++程序设计》第1章 C++概述(张晓如).ppt
- 江苏科技大学电子信息学院计算机系:《VC++实验指导书》.doc
- 江苏科技大学电子信息学院计算机系:《VC++实验指导书》(计12个实验).doc
- 山东大学:高性能感应电机电流控制研究(硕士学位论文,程金路).pdf
- 《Photoshop CS3案例教程》教学课件(PPT讲稿)项目四 制作图书封面——图像编辑.ppt
- 《Photoshop CS3案例教程》教学课件(PPT讲稿)项目十二 制作下雪的圣诞节动画——动作与动画.ppt
- 《Photoshop CS3案例教程》教学课件(PPT讲稿)项目十三 制作旅游网页界面——应用进阶.ppt
- 《Photoshop CS3案例教程》教学课件(PPT讲稿)项目十一 制作折页广告——应用通道.ppt
- 《Photoshop CS3案例教程》教学课件(PPT讲稿)项目十 制作茶叶包装盒——神奇的滤镜.ppt
- 《Photoshop CS3案例教程》教学课件(PPT讲稿)项目六 打造精美电脑桌面——绘画与修饰工具.ppt
- 《Photoshop CS3案例教程》教学课件(PPT讲稿)项目八 制作房地产广告——应用文字.ppt
- 《Photoshop CS3案例教程》教学课件(PPT讲稿)项目五 制作电影海报——强大的图层.ppt
- 《Photoshop CS3案例教程》教学课件(PPT讲稿)项目二 制作化妆品广告——选区制作(上).ppt
- 《Photoshop CS3案例教程》教学课件(PPT讲稿)项目九 数码照片处理 ——图像修复与色彩调整.ppt
- 山东大学:《Visual C++程序设计》第11章 继承和派生类(张晓如).ppt
- 山东大学:《Visual C++程序设计》第13章 运算符重载(张晓如).ppt
- 山东大学:《Visual C++程序设计》第12章 类的其他特性(张晓如).ppt
- 山东大学:《Visual C++程序设计》第14章 输入/输出流类库(张晓如).ppt
- 山东大学:《Visual C++程序设计》第10章 构造函数和析构函数(张晓如).ppt
- 山东大学:《Visual C++程序设计》第4章 C++的流程控制语句(张晓如).ppt
- 《单片机相关电子图书资料》51单片机C编程.pdf
- 《单片机相关电子图书资料》精彩51单片机教程.pdf
- 《单片机相关电子图书资料》第十一章 PIC 单片机的 C 语言编程.pdf
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第10章 Visual C++编程实例.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第10讲 对象数组和指针及对象作为函数参数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第11讲 静态成员及友元.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第12讲 派生类的概念.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第13讲 派生的构造函数和析构函数.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第14讲 多继承.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第15讲 赋值兼容.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第16讲 多态性与虚.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第17讲 抽象类.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第18讲 运算符重载.ppt
- 中国铁道出版社:《C++面向对象程序设计》课程教学资源(PPT课件讲稿)第19讲 几种常见的运算符重载及类型转换函数.ppt