欢迎来到天天文库
浏览记录
ID:43168012
大小:94.50 KB
页数:36页
时间:2019-10-01
《清华-谭浩强-C语言程序设计视频教程-第7章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C程序设计讲师:徐红波Email:x_h_b@tom.com第7章数组前几章使用的都是属于基本类型(整型、字符型、实型)的数据,C语言还提供了构造类型的数据,它们有数组类型、结构体类型和共用体类型。构造类型数据是由基本类型数据按一定规则组成的,因此它们又被称为“导出类型”。数组是有序数据的集合。数组中的每一个元素都属于同一个数据类型。用一个统一的数组名和下标来惟一地确定数组中的元素。7.1一维数组的定义和引用7.1.1一维数组的定义一维数组的定义方式为类型说明符数组名[常量表达式];例如:inta[10];说明:(1)数组名的命名规则和变量名相同,遵循标识符命名规则。(2)在定义数组时,
2、需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。(3)常量表达式中可以包括常量和符号常量,不能包含变量。C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。7.1.2一维数组元素的引用数组必须先定义,然后使用。C语言规定只能逐个引用数组元素而不能一次引用整个数组。数组元素的表示形式为数组名[下标]下标可以是整型常量或整型表达式。[例7.1]数组元素的引用#includevoidmain(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf(“%d
3、”,a[i]);printf(“”);}7.1.3一维数组的初始化对数组元素的初始化可以用以下方式实现(1)在定义数组时对数组元素赋予初值。(2)可以只给一部分元素赋值。(3)如果想使一个数组中全部元素值为0,可以写成:inta[2]={0,0}或inta[2]={0};。(4)在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。7.1.4一维数组程序举例[例7.2]用数组来处理求Fibonacci数列问题#includevoidmain(){inti;intf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[
4、i-1];for(i=0;i<20;i++){if(i%5==0)printf(“”);printf(“%12d”,f[i]);}}[例7.3]用起泡法对10个数排序(由小到大)起泡法的思路:将相邻两个数比较,将小的调到前头7.2二维数组的定义和引用7.2.1二维数组的定义二维数组定义的形式为类型说明符数组名[常量表达式][常量表达式];例如:floata[3][4],b[5][10];二维数组可被看作是一种特殊的一维数组:它的元素又是一个一维数组。二维数组中元素排列的顺序是按行存放的。即在内存中先顺序存放第一行的元素,再存放第二行的元素。C语言允许使用多维数组。7.2.2二维数组的
5、引用二维数组元素的表示形式为数组名[下标][下标]例如a[2][3]。下标可以是整型表达式,如a[2-1][2*2-1]。数组元素可以出现在表达式中,也可以被赋值。例如:b[1][2]=a[2][3]/2下标值应在已定义的数组大小的范围内。常出现的错误是:inta[3][4];……a[3][4]=3;7.2.3二维数组的初始化可以用下面的方法对二维数组初始化(1)分行给二维数组赋初值。(2)可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。(3)可以对部分元素赋初值。(4)如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能
6、省。7.2.4二维数组程序举例[例7.4]将一个二维数组行和列的元素互换,存到另一个二维数组中。例如:[例7.5]有一个3×4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号7.3字符数组用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。7.3.1字符数组的定义字符数组定义的一般形式为char数组名[常量表达式][常量表达式]……由于字符型与整型是相互通用的,因此也可以定义一个整型数组,用它存放字符数据。intc[10];c[0]=‘a’;7.3.2字符数组的初始化对字符数组初始化,最容易理解的方式是逐个字符赋给数组中各元素。如果在定义字符数组时不进
7、行初始化,则数组中各元素的值是不可预料的。如果花括号中提供的初值个数大于数组长度,则按语法错误处理。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即’ ’)。如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。7.3.3字符数组的引用可以引用字符数组中的一个元素,得到一个字符。[例7.6]输出一个字符串#includev
此文档下载收益归作者所有