资源描述:
《C语言程序设计教程 教学课件 作者 葛素娟第六章 数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章 数组一、一维数组二、二维数组三、字符数组四、程序举例五、打地鼠游戏程序之二前面我们学习了基本类型数据,有int型、char型和float型等,如图6-1所示。本章还要学习构造类型数据。构造类型数据是由基本类型数据按照一定的规则组成的数据。它们有:数组、结构体、共用体等,本章将学习数组。数组是有序数据的集合,简单地说就是一组数,常用的有一维数组和二维数组。一、一维数组我们知道,无论变量是int型、char型还是float型,都只能存放一个数据。若想存放多个数据,如一组整型数据、一组字符型数据或
2、一组实型数据,如图6-2所示,将如何进行呢?数组在内存中是占用一段连续存储单元的,这段连续的存储区域有一个起始地址,该起始地址就是数组的首地址,C语言中用数组名来代表数组的首地址(如:数组a)。每个存储单元占的字节数由数组的数据类型决定(在VC系统中,int型数据占4个字节,char型数据占1个字节,float型数据占4个字节),每个存储单元存放一个值,该值称为数组的元素(如:12、34、0、-1、100、56)。用“数组名[下标]”的形式来区分不同的元素(如:a[0]、a[1]、a[2]、a[3]
3、、a[4]、a[5]),这样数组名[下标]和相应的元素之间就产生了一一对应的关系,通过数组名[下标]就可以访问相应的元素了。数组规定,下标从0开始依次编号。在C语言中,提供了数组这种数据结构,可以实现多个数据的存储。下面,我们介绍数组的有关概念,如图6-3所示。综上所述,数组的特征是:(1)数组在内存中占用一段连续的存储单元;(2)数组中每一个元素都属于同一个数据类型。下面,我们学习数组的定义、引用和初始化。1、一维数组的定义当数组中每个元素只带有一个下标时,我们称这样的数组为一维数组。一维数组的定
4、义形式是:类型说明符数组名[数组长度];例如:inta[6];charb[5];floatc[7];inta[6];表示定义了一个一维的整型数组a,可以存放6个元素,其下标依次是a[0]、a[1]、a[2]、a[3]、a[4]、a[5]。charb[5];表示定义了一个一维的字符数组b,可以存放5个元素,其下标依次是b[0]、b[1]、b[2]、b[3]、b[4]。floatc[7];表示定义了一个一维的实型数组c,可以存放7个元素,其下标依次是c[0]、c[1]、c[2]、c[3]、c[4]、c[
5、5]、c[6]。说明:数组必须先定义,后使用;数组名定名规则和变量名相同,遵循标识符的定名规则;数组名后是用方括号括起来的数组长度,不能用圆括号;数组长度可以是常量和符号常量,不能是变量。①inta[6];//数组长度是常量②#defineN10inta[N];//数组长度是符号常量③intn;scanf("%d",&n);inta[n];//错误数组长度不能是变量。因为数组分配存储单元是在编译阶段,而变量是在运行时才有值。2、一维数组元素的引用当定义了一个一维数组以后,在内存中就为该数组分配了一段
6、连续的存储单元,每个存储单元对应着一个数组元素。对数组元素进行赋值、运算和输出等都是对数组元素的引用。一维数组元素的引用形式是:数组名[下标]例如:inta[6];//数组的定义a[0]=12;//引用a[0]元素printf("%d,%d",a[0],a[0]*10);//引用a[0]元素注意:数组的定义和数组元素的引用它们之间的差别。在定义数组时,前面有“类型说明符”,而引用数组元素时,前面没有“类型说明符”;在定义数组时,数组名后下标是“数组长度”,而引用数组元素时,数组名后下标是“元素”
7、,且元素最小下标是“0”,元素最大下标是“数组长度-1”。【例6-1】一维数组元素的引用。#includevoidmain(){inti,a[10];for(i=0;i<=9;i++)//循环变量从0开始scanf("%d",&a[i]);//引用for(i=9;i>=0;i--)//逆序输出元素printf("%d",a[i]);//引用printf("");}说明:用单层循环语句对一维数组元素进行引用,操作方便,且可输入任意值。3、一维数组的初始化前面已经学过变量的初始化,
8、就是在定义变量的同时给变量赋值。例如:inta=20;同样,在定义数组的同时给数组元素赋值,就叫做数组的初始化。数组的初始化用以下方法实现:(1)在定义数组时对数组元素赋以初值;inta[10]={0,1,2,3,4,5,6,7,8,9};(2)可以只给一部分元素赋值;inta[10]={0,1,2,3,4};//只给前五个元素赋初值,后五个元素值为0(3)如果想使一个数组中全部元素值为0,可以写成:inta[10]={0};(4)在对全部数组元素赋初值时,可以不指定