高级程序设计语言 吴凡 TEL:83202682 E-mail:cdwf@tom.com
高级程序设计语言 吴 凡 TEL: 83202682 E-mail: cdwf@tom.com
第七章数组 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 第七章 数组
概述 ●回顾:基本数据类型(整型、浮点型、字 符型) ●存储特点:每个变量单独存放。 ●构造类型: n[0] 100 struct student[ number intn[100]n[1] int number i 101 char name[10] name n[2] 102 张三 in七 age i n[3] 103 un.。nsex sEx 104 int phone; 男 83201234 phone [199] 199 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 概述 ⚫ 回顾:基本数据类型(整型、浮点型、字 符型) ⚫ 存储特点:每个变量单独存放。 ⚫ 构造类型: int n[100] 100 101 102 103 104 ... 199 n[0] n[1] n[2] n[3] n[4] ... n[199] struct student{ int number; char name[10]; int age; union sex; int phone; } 108 张三 number name sex phone 男 83201234
构造类型 ●构造类型:是由基本类型构造而成(例如 数组、结构体、共同体、枚举型) ●构造类型每一个分量可以是:基本类型,也可 以是构造类型 ●存储特点:构造类型变量的每个分量占用相邻 的存储空间 ●重点:如何访问构造类型变量的分量 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 构造类型 ⚫ 构造类型:是由基本类型构造而成(例如: 数组、结构体、共同体、枚举型) ⚫ 构造类型每一个分量可以是:基本类型,也可 以是构造类型 ⚫ 存储特点:构造类型变量的每个分量占用相邻 的存储空间 ⚫ 重点:如何访问构造类型变量的分量
数组 ●有序数据的集合:例如:矩阵,成绩表 ●若干分量组成 分量具有相同类型 按顺序形式组织 ●数组:按序列排列的具有相同数据类型的 若干变量的集合 ●数组名—表示一个数组(例: int nun[10]; ●数组名结合下标—表示数组中元素 ●例:数组num中的第3号元素(变量):num[2] 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 数组 ⚫ 有序数据的集合:例如:矩阵,成绩表 ⚫ 若干分量组成 ⚫ 分量具有相同类型 ⚫ 按顺序形式组织 ⚫ 数组:按序列排列的具有相同数据类型的 若干变量的集合 ⚫ 数组名——表示一个数组(例:int num[10];) ⚫ 数组名结合下标——表示数组中元素 ⚫ 例:数组num中的第3号元素(变量):num[2]
维数组 ●定义: 类型名数组名[常量表达式] 例: int num[10 例: char str{5] n[0] 五int型分量 (bytes) char 型 [1] tr[o 分量 10个分量str1 (byte) (2*10=20B) str [2 5个分量 1*5=5B n[9] str[3 tr[ 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 一维数组 ⚫ 定义: 类型名 数组名 [常量表达式]; ⚫ 例:int num[10] 例:char str[5] ... n[0] n[1] n[9] int型分量 (2bytes) 10个分量 (2*10=20B) str[0] str[1] char型 分量 (1byte) 5个分量 (1*5=5B) str[2] str[3] str[4]
维数组的定义 ●注意 ●数组名是用户定义的数组标识符,与变量的命 名规则相同 数组名后只能根方括号"丁" ●方括号中的常量表达式表示数据元素的个数, 称为数组的长度。 ●常量表达式只能是可以是常量和符号常量,不能是 变量。 ●例如: int index scanf(“%d”,& index); int numindex; 错误!! 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 一维数组的定义 ⚫ 注意 ⚫ 数组名是用户定义的数组标识符,与变量的命 名规则相同 ⚫ 数组名后只能根方括号"[ ]" ⚫ 方括号中的常量表达式表示数据元素的个数, 称为数组的长度。 ⚫ 常量表达式只能是可以是常量和符号常量,不能是 变量。 ⚫ 例如:int index; scanf(“%d”,&index); int num[index]; 错误!!
维数组的存储 ●用连续的内存单元来存放数组中的各元素 ●数组所需的内存空间:由数组元素的类型 和数组的长度(数组元素个数)共同决定 总字节数= sizeof(基本类型)*数组长度 例: int num[10], 总字节数= sizeof(int)*10=20Byes 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 一维数组的存储 ⚫ 用连续的内存单元来存放数组中的各元素 ⚫ 数组所需的内存空间:由数组元素的类型 和数组的长度(数组元素个数)共同决定 ⚫ 总字节数 = sizeof(基本类型)*数组长度 ⚫ 例:int num[10], 总字节数 = sizeof(int)*10=20Bytes
维数组元素的引用 ●数组先定义,再使用 在C语言中只能逐个地使用下标变量,而 不能一次引用整个数组。 例:输出10个元素的数组:for(i=0;i<10;i+) printf("‰%d",a); 而不能用: printf("d",a); 数组元素引用的一般形式为:数组名[下标] 例:a6],a[,a[i+1 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 一维数组元素的引用 ⚫ 数组先定义,再使用 ⚫ 在C语言中只能逐个地使用下标变量,而 不能一次引用整个数组。 ⚫ 例:输出10个元素的数组:for(i=0; i<10; i++) printf("%d",a[i]); 而不能用: printf("%d",a); ⚫ 数组元素引用的一般形式为:数组名[下标] ⚫ 例:a[6],a[i],a[i+1]
维数组元素的引用 ●下标: ●表示元素在数组中的顺序号 ●下标取值从0~数组长度一1 例:inta[10];下标取值:0~9,即该数组的元素为 a0],可1],a[2],…a9] ●下标取值可以是整型常量和整型表达式 ●例:a[n]=an-1]+a[0] 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 一维数组元素的引用 ⚫ 下标: ⚫ 表示元素在数组中的顺序号 ⚫ 下标取值从0~数组长度-1 ⚫ 例:int a[10]; 下标取值:0~9,即该数组的元素为 a[0], a[1], a[2], ... a[9] ⚫ 下标取值可以是整型常量和整型表达式 ⚫ 例:a[n] = a[n-1]+a[0];