清华大学出版社 TSINGHUA UNIVERSITY PRESS 第七章
第七章
华学版第七章数组 ERSITY PRESS 问题:给一组数排序,这组数该如何存放呢 11 12945637 6 8 8 ?? 888888{8 才便于排序 这便是本章所要解决的问题 ?
问题:给一组数排序,这组数该 如何存放呢 ??? 这些数据如何存放才便于排序 8 2 9 4 5 6 3 7 18 6 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 8 88 8 8 8 8 8 8 这便是本章所要解决的问题 第七章 数组
华学版第七章数组 ERSITY PRESS 本章要点 9掌握一维、二维数组的定义和引用方 法、存储结构和初始化方法。 掌握有关一维数组的有关算法。 掌握数组的运算
⚫ 本章要点 ◼掌握一维、二维数组的定义和引用方 法、存储结构和初始化方法。 ◼掌握有关一维数组的有关算法。 ◼掌握数组的运算。 第七章 数组
华学版第七章数组 ERSITY PRESS ●主要内容 7.1一維数组的定义和引用 7.2二维数组的定义和引用 7.3字符数组
⚫ 主要内容 7.1 一维数组的定义和引用 7.2 二维数组的定义和引用 7.3 字符数组 第七章 数组
清华大学出版社 TSINGHUA UNIVERSITY PRESS §7-1一维数组的定义和引用 问题:有如下几组数据,它们分别该如何存储呢? 个班学生的学习成绩 一行文字 这些数据的特点是 个矩阵 、具有相同的数据类型 2、使用过程中需要保留原始数据 C语言为这些数据,提供了一种 数组 构造数据类型:数组。 是一组具有相同数据类型的数据的有序集合
§7-1 一维数组的定义和引用 问题:有如下几组数据,它们分别该如何存储呢? 是一组具有相同数据类型的数据的有序集合。 数组 • 一个班学生的学习成绩 • 一行文字 • 一个矩阵 这些数据的特点是: 1、具有相同的数据类型 2、使用过程中需要保留原始数据 C语言为这些数据,提供了一种 构造数据类型:数组
清华大学出版社 TSINGHUA UNIVERSITY PRESS §7.1.1一维数组的定义 1、一维数组的定义格式为: 类型说明符数组名[常量表达式]; 例如:inta[10] 它表示定义了一个整形数组,数组名为a,此数组 有10个元素。 2、说明: (1)数组名定名规则和变量名相同,遵循标识符定 名规则
1、一维数组的定义格式为: 类型说明符 数组名[常量表达式]; 例如: int a[10]; 它表示定义了一个整形数组,数组名为a,此数组 有10个元素。 § 7.1.1一维数组的定义 2、说明: (1)数组名定名规则和变量名相同,遵循标识符定 名规则
(2)在定义数组时,需要指定数组中元素的个数, 方括弧中的常量表达式用来表示元素的个数,即数组 长度。例如,指定a[10],表示a数组有10个元素, 注意下标是从0开始的,这10个元素是,a[0],a[ ],a[2],a[3],a[4],a[5],a[6] [7],a[8],a[9]。请持别注意,按上面的定 义,不存在数组元素a[10] (3)常量表达式中可以包括常量和符号常量,但不 能包含变量。也就是说,C语言不允许对数组的大小 作动态定义,即数组的大小不依赖于程序运行过程中 变量的值。例如,下面这样定义数组是不行的:
(2)在定义数组时,需要指定数组中元素的个数, 方括弧中的常量表达式用来表示元素的个数,即数组 长度。例如,指定a[10],表示a数组有10个元素, 注意下标是从0开始的,这10个元素是,a[0],a[ 1],a[2],a[3],a[4],a[5],a[6],a [7],a[8],a[9]。请持别注意,按上面的定 义,不存在数组元素a[10]。 (3)常量表达式中可以包括常量和符号常量,但不 能包含变量。也就是说,C语言不允许对数组的大小 作动态定义,即数组的大小不依赖于程序运行过程中 变量的值。例如,下面这样定义数组是不行的:
清华大学出版社 TSINGHUA UNIVERSITY PRESS 举例:intn; scanf(w%d″,&n);/*在程序中临时输入数 组的大小米/ int a ln] 数组说明中其他常见的错误 ① float a[0];/*数组大小为0没有意义*/ ②intb(2)(3);/*不能使用圆括号*/ ③intk,a[k];/*不能用变量说明数组大小*
举例: int n; scanf(“%d″,&n); /*在程序中临时输入数 组的大小 */ int a[n]; ① float a[0]; /* 数组大小为0没有意义 */ ② int b(2)(3); /* 不能使用圆括号 */ ③ int k, a[k]; /* 不能用变量说明数组大小*/ 数组说明中其他常见的错误
清华大学出版社 ISINGHUA UNIVERSITY PRESS 3、一维数组在内存中的存放 一维数组: float mark[100] 低地址 86.5 markO 90 mark1 每个数据元素占用 77.5 mark2 的字节数,就是基 52.0 mark(31 类型的字节数 个元素占4个字节 高地址 94.0 mark99
3、一维数组在内存中的存放 每个数据元素占用 的字节数,就是基 类型的字节数 一个元素占4个字节 一维数组: float mark[100]; mark[0] mark[1] mark[2] mark[3] . . . mark[99] 86.5 92.0 77.5 52.0 . . . 94.0 低地址 高地址
华大学出版社 §7.1.2一维数组元素的引用 1、数组元素的引用方式: 数组名[下标] 下标可以是整型常量或整型表达式。例如 a[0]=a[5]+a[7]-a[2*3] 注意 定义数组时用到的“数组名[常量表达式]”和引用 数组元素时用到的“数组名[下标]”是有区别的 例如:inta[10];/*定义数组长度为10* t=a[6] /*引用a数组中序号为6的元 素。此时6不代表数组长度米
数组名[下标] 下标可以是整型常量或整型表达式。例如: a[0]=a[5]+a[7]-a[2*3] 定义数组时用到的“数组名[常量表达式]” 和引用 数组元素时用到的“数组名[下标]” 是有区别的。 例如∶ int a[10]; /* 定义数组长度为10 */ t=a[6]; /* 引用a数组中序号为6的元 素。此时6不代表数组长度 */ 注意 § 7.1.2一维数组元素的引用 1、数组元素的引用方式: