第7章数组 前面各章所使用的数据都属于基本数据类型 (整型、实型、字符型),C语言除了提供基 本数据类型外,还提供了构造类型的数据, 们是数组类型、结构体类型、共同体类型等。 构造数据类型是由基本数据类型的数据按照 定的规则组成,所以也称为“导出类型”。 下面简单介绍一下数组概念 1、数组:一组具有相同数据类型的数据的有 序的集合 2、数组元素:数组中的元素。数组中的每 个数组元素具有相同的名称,不同的下标,可 以作为单个变量使用,所以也称为下标变量 在定义一个数组后,在内存中使用一片连续的 空间依次存放数组的各个元素
第7章 数组 • 前面各章所使用的数据都属于基本数据类型 (整型、实型、字符型),C语言除了提供基 本数据类型外,还提供了构造类型的数据,它 们是数组类型、结构体类型、共同体类型等。 构造数据类型是由基本数据类型的数据按照一 定的规则组成,所以也称为“导出类型” 。 • 下面简单介绍一下数组概念: • 1、数组:一组具有相同数据类型的数据的有 序的集合。 • 2、数组元素:数组中的元素。数组中的每一 个数组元素具有相同的名称,不同的下标,可 以作为单个变量使用,所以也称为下标变量。 在定义一个数组后,在内存中使用一片连续的 空间依次存放数组的各个元素
第7章数组 3、数组的下标:是数组元素的位置的一个索 引或指示。 4、数组的维数:数组元素下标的个数。根据 数组的维数可以将数组分为一维、二维、三维 多维数组 7、1一维数组 数组(上面提到):数组是一组有序数据的集 合,数组中每一个元素的类型相同。用数组名 和下标来唯一确定数组中的元素。 维数组中的各个数组元素是排成一行的一组 标变量,用一个统一的数组名来标识,用 个下标来指示其在数组中的位置。下标从0开 始。一维数组通常和一重循环相配合,对数组 元素进行处理
第7章 数组 • 3、数组的下标:是数组元素的位置的一个索 引或指示。 • 4、数组的维数:数组元素下标的个数。根据 数组的维数可以将数组分为一维、二维、三维、 多维数组。 • 7、1 一维数组 • 数组(上面提到):数组是一组有序数据的集 合,数组中每一个元素的类型相同。用数组名 和下标来唯一确定数组中的元素。 • 一维数组中的各个数组元素是排成一行的一组 下标变量,用一个统一的数组名来标识,用一 个下标来指示其在数组中的位置。下标从0开 始。一维数组通常和一重循环相配合,对数组 元素进行处理
第7章数组 7、1、1一维数组的定义(先定义后使用) 定义方式: 类型说明符数组名[整型常量表达式 例、inta[10] 定义一个数组,数组名a,有10个元素, 每个元素的类型均为int。 ·这10个元素分别是:a[0]、a[1]、a[2] a[3]、a[4]、、a[8]、a[9]。 注意: (1)C语言中,数组下标从0开始 (2)C语言不允许对数组的大小做动态 定义,如:
第7章 数组 • 7、1、1 一维数组的定义(先定义后使用) • 定义方式: • 类型说明符 数组名[整型常量表达式] • 例、 int a[10] • 定义一个数组,数组名a,有10个元素, 每个元素的类型均为int。 • 这10个元素分别是:a[0]、a[1]、a[2]、 a[3]、a[4]、....、a[8]、a[9]。 • 注意: • (1)C语言中,数组下标从0开始. • (2)C语言不允许对数组的大小做动态 定义,如:
第7章数组 int n: scanf(%d",&n) int an 因为在编译时,C编译器根据已知数组大小分配 内存。 说明: (1)数组名:按标识符规则。本例就是数组 名。 (2)整型常量表达式:表示数组元素个数(数 组的长度)。可以是整型常量或符号常量,不 允许用变量 ·整型常量表达式在说明数组元素个数的同时也 确定了数组元素下标的范围,下标从0开始~整 型常量表达式-1(注意不是1~整型常量表达
第7章 数组 • int n; • scanf("%d",&n); • int a[n]; • 因为在编译时,C编译器根据已知数组大小分配 内存。 • 说明: • (1)数组名:按标识符规则。本例a就是数组 名。 • (2)整型常量表达式:表示数组元素个数(数 组的长度)。可以是整型常量或符号常量,不 允许用变量。 • 整型常量表达式在说明数组元素个数的同时也 确定了数组元素下标的范围,下标从0开始~整 型常量表达式-1(注意不是1~整型常量表达 式)
第7章数组 C语言不检查数组下标越界,但是使用时, 般不能越界使用,否则结果难以预料(覆盖程 序区程序飞出,覆盖数据区数据覆盖破坏, 操作系统被破坏,系统崩溃)。 本例数组元素个数是10个,下标从0-9。 (3)类型说明:指的是数据元素的类型,可 以是基本数据类型,也可以是构造数据类型。 类型说明确定了每个数据占用的内存字节数。 比如整型2字节,实型4字节,双精度8字节, 字符1字节。 本例数组元素是整型,每个元素占2个字节, 因为有10个数组元素,所以占用20字节。 (4)C编译程序为数组分配了一片连续的空间 (5)C语言还规定,数组名是数组的首地址。 即a=&a[0l
第7章 数组 • C语言不检查数组下标越界,但是使用时,一 般不能越界使用,否则结果难以预料(覆盖程 序区-程序飞出,覆盖数据区-数据覆盖破坏, 操作系统被破坏,系统崩溃)。 • 本例数组元素个数是10个,下标从0-9。 • (3)类型说明:指的是数据元素的类型,可 以是基本数据类型,也可以是构造数据类型。 类型说明确定了每个数据占用的内存字节数。 比如整型2字节,实型4字节,双精度8字节, 字符1字节。 • 本例数组元素是整型,每个元素占2个字节, 因为有10个数组元素,所以占用20字节。 • (4)C编译程序为数组分配了一片连续的空间。 • (5)C语言还规定,数组名是数组的首地址。 即a=&a[0]