- 1
- 0
- 约2.4万字
- 约 78页
- 2017-11-12 发布于广东
- 举报
第6章 数 组 第6章 数 组 在程序设计中,数组是一种非常有用的数据结构,很多问题,不使用数组几乎无法解决。 数组是一组具有相同类型变量的有序集合,即数组变量实际上是一组顺序排列的同名变量,其中的每个变量称为数组的一个元素,标识每个数组元素在此序列中的顺序号叫做下标,下标的个数称为维数。如果只用一个下标就能确定数组元素在数组中的位置,则称为一维数组。用两个下标就能确定数组元素在数组中的位置,则称为二维数组。依次类推,可有三维数组、四维数组等等,通常情况下,将二维以上的数组称为多维数组。 第6章 数 组 数组中的每个特定元素都使用下标来访问。数组由一段连续的存贮地址构成,最低的地址对应于第一个数组元素,最高的地址对应最后一个数组元素。元素个数=各维长度的乘积。数组存储空间=元素个数×该类型数据占用的字节数。 在C语言中,数组属于构造数据类型。按数组维数的多少可将数组分为一维数组、二维数组、多维数组等;按数组元素类型的不同,数组又可分为数值数组、字符数组、指针数组、结构数组等。本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。 6.1 一维数组 6.1.1 一维数组的定义 6.1.2 一维数组元素的引用 6.1.3 一维数组的存储结构 6.1.4 一维数组的初始化 6.1.5 一维数组应用举例 6.1.1 一维数组的定义(1) 一维数组的定义 格式:存储类型 数据类型 数组名[常量表达式],……; 功能:定义指定“存储类型”和“数据类型”的若干一维数组。 说明: 存储类型可以是自动型(auto)、静态型(static)、外部型(extern),但不能是寄存器型(register)。存储类型缺省时,默认为自动型(auto)。详见7.7节。 数据类型用于指定数组的类型,它可以是任一种基本数据类型(如整型、无符号整型、单精度、双精度、字符型等)或构造数据类型(如指针型、结构型)。数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 数组名的命名与变量相同,遵循标示符命名规则。 6.1.1 一维数组的定义(2) 方括号是必需的,不能省略。常量表达式表示元素的个数,即数组长度,故只能为整数。常量表达式中可以包括常量和符号常量,不能包含变量。 在C语言中,数组元素的下标一律从0开始,最后一个元素的下标是:数组长度-1。例如,声明:int a[5],则其所表达的含义是:类型说明符int a[5]说明了a是一个由5个整型数组元素(变量)组成的一维数组,这5个元素(变量)的名字依次是a[0]、a[1]、a[2]、a[3]、a[4]。 允许在同一个类型说明中,说明多个数组和多个变量。 数组名不能与其它变量名相同。 6.1.1 一维数组的定义(3) 【例6-1】一维数组定义举例。 auto int a[4],i; 定义了一个存储类型为自动型,含有4个数组元素的整型数组a,数组元素分别为a[0]、a[1]、a[2]、a[3]。同时还定义了一个整型变量i。 float b[3],c[5]; 定义了一个存储类型为自动型,含有3个数组元素的单精度型数组b,和含有5个元素的单精度型数组c,数组元素分别为b[0]、b[1]、b[2]和c[0]、c[1]、c[2]、c[3]、c[4]。 static char ch[20]; 定义了一个含有20个元素的静态字符数组ch。 #define X 3 void main() { int a[3+2],b[7+X]; ……} 数组名后的方括号中可以是符号常数或常量表达式,上面定义了两个存储类型为自动型,数据类型为整型的数组a和数组b,分别有5个和10个数组元素。 6.1.1 一维数组的定义(4) 【例6-2】分析指出下面的一维数组定义出错的原因。 int x(10); 数组名后的括号只能是方括号[ ],不能是圆括号( )。 float a=5, a[20]; 数组名与变量名同名。 double b[5.8]; 定义数组元素个数的表达式不能是小数。 int n=5,a[n]; 不能在方括号中用变量来表示元素的个数。 int m; scanf(%d,m); int a[m]; 不能在方括号中用变量来表示元素的个数。 6.1.2 一维数组元素的引用(1) 当定义了一维数组之后,就可以引用这个数组中的任何元素,引用方法如下: 数组名[下标] 例如:若有数组定义int a[5],当i=2,j=1时,a[i],a[j+i],a[j-1]等都是对a数组的合法引用。 上述引用数组元素的方法称为“下标法”。除此外,C语言中还允许使用“指针方式”来引用数组元素,称为
您可能关注的文档
- AutoCAD绘图基础实训教程课件作者何文平第四章节二维图形编.ppt
- 人机界面设计(第二版)课件作者王文周苏涂嘉庆第03章节硬件人机界面设计.ppt
- 人机界面设计课件作者周苏第4讲软件人机界面设计.ppt
- 人机界面设计课件作者周苏第5讲网页界面设计与Visio工具.ppt
- 人机界面设计课件作者周苏第7讲人机界面设计的测试与评价.ppt
- 人机界面设计课件作者周苏第8讲多通道用户界面及交互技术.ppt
- AutoCAD机械制图基础与实训课件作者李静项目一.ppt
- C#程序设计案例教程课件作者王明福源代码习题答案第5章节.ppt
- 人力资源管理第2版课件作者王宝石第七章节员工绩效考核与绩效管理.ppt
- 人力资源管理基础课件作者赵轶任务7员工绩效管理.ppt
原创力文档

文档评论(0)