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