k A的外的出》净的出《的要的《图的《的气
本章要点: 团掌握数组的基本概念; 熟练掌握一维数组和二维数组的使用方法 区掌握字符数组与字符串的关系 团会分析、编写利用数组进行数据存储和处理的 简单程序。 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 2 掌握数组的基本概念; 熟练掌握一维数组和二维数组的使用方法; 掌握字符数组与字符串的关系 会分析、编写利用数组进行数据存储和处理的 简单程序。 本章要点:
§数组的概述 1数组的概念 数组是具有一定顺序关系的若干相同类型变量 的集合体,组成数组的变量称为该数组的元素。 数组属于构造类型。 2数组有两个特点: 1数组元素的个数必须是确定的,但元素值是可变的; 2是一个数组的所有元素的类型必须是相同的。 C++程序设计课件设计制作:徐龙琴 3
C++程序设计课件 设计制作:徐龙琴 3 §数组的概述 ⒈数组的概念 数组是具有一定顺序关系的若干相同类型变量 的集合体,组成数组的变量称为该数组的元素。 数组属于构造类型。 2 是一个数组的所有元素的类型必须是相同的。 1 数组元素的个数必须是确定的,但元素值是可变的; ⒉数组有两个特点:
3数组的分类 按数组元素类型分: ■数值数组:inta[8],b[4]={2,4,5,9}; 字符数组: char c[]=“ Thank”; 指针数组:*d[3]; 按维数来分 维数组:inta[8],b[4]={2,4,5,9} 二维数组:intm[2][2]={2,4,5,9}; ■多维数组:intn[2][2][2]; C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 4 ⒊数组的分类: 按数组元素类型分: 数值数组 : 字符数组 : 指针数组 : int a[8],b[4]={2,4,5,9}; char c[ ]=“Thank”; * d[3]; 按维数来分: 一维数组 : 二维数组 : 多维数组 : int m[2][2]={2,4,5,9}; int a[8],b[4]={2,4,5,9}; int n[2][2][2];
例:存储学生成绩用实型数组mark[100], 存储一行文字用字符数组str[200], 存储一个4*6的矩阵用二维整型数组a[4][6]。 其中:①mark、str、a是数组名。数组名是数组的首 地址,是一个地址常量。 ②[]称为下标运算符。 ③下标运算符的个数称为数组的维数 ④数组的成员称为数组元素:mark[0],mark[1] ⑤数组元素的类型称为该数组的基类型。 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 5 例: 存储学生成绩用实型数组 mark[100], 存储一行文字用字符数组 str[200], 存储一个4*6的矩阵用二维整型数组 a[4][6]。 其中:①mark、str、a 是数组名。数组名是数组的首 地址,是一个地址常量。 ② [ ] 称为下标运算符。 ③下标运算符的个数称为数组的维数 ④数组的成员称为数组元素:mark[0],mark[1] ⑤数组元素的类型称为该数组的基类型
4.数组元素在内存的存放形式 数组元素在内存里顺序存放 维数组的存放: 低地址86.5 mark0 92.0 markl 77.5 mark2I 每个数据元 52.0 marki 素占用的字节 数,就是基类 型的字节数 高地址 94.mark(99 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 6 ⚫ 数组元素在内存里顺序存放 一维数组的存放: ⒋ 数组元素在内存的存放形式 每个数据元 素占用的字节 数,就是基类 型的字节数 mark[0] mark[1] mark[2] mark[3] . . . mark[99] 86.5 92.0 77.5 52.0 . . . 94.0 低地址 高地址
多维数组的元素按行顺序存放。 二维数组的存放: 例如:整型数组b 地址值数组元素 b23={{1,2,3}, 4,5,6}} 300c16010 3002H 3004 H b|021 先存放第1行的所 有元素,再存放第 3006 H b[I10 2行的所有元素。 3008 H 2-34-5-6 b11 300A1 H b12 C++程序设计课件设计制作:徐龙琴 7
C++程序设计课件 设计制作:徐龙琴 7 b[0][0] b[0][1] b[0][2] b[1][0] b[1][1] b[1][2] 1 2 3 4 5 6 3000H 3002H 3004H 3006H 3008H 300AH 例如:整型数组 b b[2][3]={ {1,2,3}, {4,5,6} }; 多维数组的元素按行顺序存放。 二维数组的存放: 地址 值 数组元素 先存放第 1 行的所 有元素,再存放第 2 行的所有元素
例:inta[4]={2,4,5,9}; 内存地址内存空间 数组a 3000 a[0 3002 3004 5 a 21 3006 9 a 3 C++程序设计课件设计制作:徐龙琴 8
C++程序设计课件 设计制作:徐龙琴 8 int a[4]={2,4,5,9}; ———————— ———————— 2 4 9 内存空间 ———————— ———————— 5 ———————— : : : : 内存地址 3000 3002 3004 3006 数组a a[0] a[1] a[2] a[3] 例:
§一维数组 数组同变量一样,也必须先定义、后使用 1.一维数组定义格式: 存储类型数据类型数组名常量表达式 ■存储类型:可以是:auto、 static、 extern,但不能是 register, 缺省值为auto ■数据类型:可以是基本类型、复合类型,但不能是引用。 ■数组名:是标识符,是数组元素在内存中的起始地址,它是地址常量 ■常量表达式:指是数组的元素个数(又称数组长度),是个 整型值,包含常数和符号常量,但不能包含变量 C++程序设计课件设计制作:徐龙琴
C++程序设计课件 设计制作:徐龙琴 9 §一维数组 ⒈ 一维数组定义格式: 数组同变量一样,也必须先定义、后使用 存储类型 数据类型 数组名[常量表达式] 存储类型 :可以是:auto、static、extern,但不能是register, 缺省值为auto 。 数据类型:可以是基本类型、复合类型,但不能是引用。 数组名:是标识符,是数组元素在内存中的起始地址,它是地址常量 常量表达式:指是数组的元素个数(又称数组长度),是一个 整型值,包含常数和符号常量,但不能包含变量
例:数组的定义中常见的错误 ①f1oata[0];/*数组大小为0没有意义*/ ②intb(2)(3);/*不能使用圆括号*/ ③intk,a[k];/*不能用变量说明数组大小米/ ④intn; scanf(%d”,&n); int aln C++程序设计课件设计制作:徐龙琴 10
C++程序设计课件 设计制作:徐龙琴 10 ① float a[0]; /* 数组大小为0没有意义 */ ② int b(2)(3); /* 不能使用圆括号 */ ③ int k, a[k]; /* 不能用变量说明数组大小*/ ④ int n; scanf (”%d”, &n); int a[n]; 例:数组的定义中常见的错误: