第5章 数组c语言老师讲的不错
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章数组
学习目标
◆掌握数组的概念
◆掌握一维数组的使用
◆掌握二维数组的使用
在前面所学的章节中,所使用的数据都属于基本数据类型,除此之外,C语言还提供了构造类型的数据,构造类型的数据包括数组类型、结构体类型和共用体类型。本章就针对其中的数组类型进行讲解。
5.1 什么是数组
在程序中,经常需要对一批数据进行操作,例如,统计某个公司100个员工的平均工资。如果使用变量来存放这些数据,就需要定义100个变量,显然这样做很麻烦,而且很容易出错。这时,可以使用x[0]、x[1]、x[2]……x[99]表示这100个变量,并通过方括号中的数字来对这100个变量进行区分。
在程序设计中,使用x[0]、x[1]、x[2]……x[n]表示的一组具有相同数据类型的变量集合称为数组x,数组中的每一项称为数组的元素,每个元素都有对应的下标(n),用于表示元素在数组中的位置序号,该下标是从0开始的。
为了大家更好地理解数组,接下来,通过一张图来描述数组x[10]的元素分配情况,如图5-1所示。
图5-1数组x[10]
从图5-1中可以看出,数组x包含10个元素,并且这些元素是按照下标的顺序进行排列的。由于数组元素的下标是从0开始的,因此,数组x的最后一个元素为x[9]。
需要注意的是,根据数据的复杂度,数组下标的个数是不确定的。通常情况下,数组元素下标的个数也称为维数,根据维数的不同,可将数组分为一维数组、二维数组、三维数组、四维数组等。通常情况下,我们将二维及以上的数组称为多维数组。
5.2 一维数组
5.2.1一维数组的定义与初始化
一维数组指的是只有一个下标的数组,它用来表示一组具有相同类型的数据。在C语言中,一维数组的定义方式如下所示:
类型说明符数组名[常量表达式];
在上述语法格式中,类型说明符表示数组中所有元素的类型,常量表达式指的是数组的长度,也就是
1
数组中存放元素的个数。
例如:
int array[5];
上述代码定义了一个数组,其中,int是数组的类型,array是数组的名称,方括号中的5是数组的长度。
完成数组的定义后,只是对数组中的元素开辟了一块内存空间。这时,如果想使用数组操作数据,还需要对数组进行初始化。数组初始化的常见的方式有三种,具体如下:
1、直接对数组中的所有元素赋值,示例代码如下:
int i[5]={1,2,3,4,5};
上述代码定义了一个长度为5的数组i,并且数组中元素的值依次为1、2、3、4、5。
2、只对数组中的一部分元素赋值,示例代码如下:
int i[5]={1,2,3};
在上述代码中,定义了一个int类型的数组,但在初始化时,只对数组中的前三个元素进行了赋值,其它元素的值会被默认设置为0。
3、对数组全部元素赋值,但不指定长度,示例代码如下:
int i[]={1,2,3,4};
在上述代码中,数组i中的元素有4个,系统会根据给定初始化元素的个数定义数组的长度,因此,数组i的长度为4。
注意:
1、数组的下标是用方括号括起来的,而不是圆括号。
2、数组名的命名同变量名的命名规则相同。
3、数组定义中,常量表达式的值可以是符号常量,例如下面的定义是合法的。
int a[N]; //假设预编译命令#define N 4, 下标是符号常量
5.2.2一维数组的引用
在程序中,经常需要访问数组中的一些元素,这时可以通过数组名和下标来引用数组中的元素。一维数组元素的引用方式如下所示:
数组名[下标];
在上述方式中,下标指的是数组元素的位置,数组元素的下标是从0开始的。例如,引用数组x的第三个元素的方式x[2]。
为了帮助大家更好地理解数组元素的引用,接下来通过一个案例来演示,如例5-1所示。
例5-1
1#include
2void main(int argc,char *argv[])
3{
4int x[5] = { 2, 3, 1, 4, 6 };
5int i;
6for ( i= 0; i < 5; i++)
7{
8printf("%d\n",2*x[i]);
9}
3
10 }
运行结果如图5-2所示。
图5-2 运行结果
在例5-1中,首先定义了一个数组x ,然后通过下标的形式获取到数组中的元素,最后将元素乘以2后输出。
注意:
数组的下标都有一个范围,即“0~[数组长度-1]”,假设数组的长度为6,其下标范围为0~5。当访问数组中的元素时,下标不能超出这个范围,否则程序会报错。
5.2.3 一维数组的常见操作
数组在编写程序时应用非常广泛,如经常需要对数组进行遍历、获取最值、排序等操作,灵活地使用数组对实际开发很重要。接下来针对一维数组的常见操作进行详细地讲解,具体如下:
1、一维数组的遍历
在操作数组时,经常需要依次访问数组中的每个元素,这种操作称作数组的遍历。接下来使用for 循环依次遍历数组中的元素,如例5-2所示。
例5-2
1 #include
2
void main(int argc, char* argv[]) 3 { 4 int x[5] = { 1, 2, 3, 4, 5 }; 5 int i = 0;
6 for (i = 0; i < 5; i++)
7 {
8 printf("x[%d]:%d\n", i, x[i]);
9 }
10 }
运行结果如图5-3所示。
图5-3 运行结果
在例5-2中,首先定义了一个长度为5的数组x ,然后定义了一个变量i ,由于数组的下标范围为0~4,