第四章构造型数据类型详解.ppt
文本预览下载声明
第四章 构造型数据类型 4.1 数组 4.2 结构体 4.3共用体 4.4 枚举型 4.5 typedef的用途 4.6 小结 习 题 前面章节介绍了C语言中的基本数据类型(整型、字符型、实型), 本章将介绍C语言中的构造型数据类型数组、结构体、共用体等。讲述一维数组和多维数组的定义、初始化和使用;字符串与字符数组的概念;结构体和共用体类型变量的定义方法和使用方法,结构体和共用体的嵌套使用;枚举型的概念以及用typedef定义类型名。建议本章授课8学时,上机6学时,自学10学时。 4.1 数组 教学内容: 4.1.1 一维数组 4.1.2 字符数组 4.1.3 二维数组 数组是最简单、最常用的构造型数据类型,它由若干个类 型相同的元素组成,每个元素就是一个变量,每个数组都有一个名 字称为数组名。数组可以是一维的、也可以是多维的。C语言中数 组元素的个数必须在定义数组时就确定,不是可调数组。 4.1.1 一维数组 教学内容: 1.数组概念的引入 2.一维数组的定义 3.一维数组元素的使用 4.数组元素的初始化 5.初始化时不指定数组长度 6.一维数组程序举例 1.数组概念的引入 从以下的问题中,可以看到引入数组的必要性。键盘读入100个实数a1,a2,...,a100。输出(a1+a100)/2.0, (a2+a99)/2.0,..., (a50+a51)/2.0。可以先把这100个实数存放在100实型变量中。为此定义100实型变量f0,f1,. . .f99分别存放这100个实数,程序如下 scanf(%f, f0); scanf(%f, f1); ┇ scanf(%f, f99); prinft(%f, , (f0+f99)/2.0); prinft(%f, , (f1+f98)/2.0); ┇ prinft(%f, , (f49+f50)/2.0); 上述程序十分重复、繁琐。为了简化这一程序,引入数组概念,将这100个实型变量写成f[0],f[1],...,f[99],它们都有相同的数组名f,其中方括号中的数字称为数组下标,数组下标可以用整型变量或整型表达式来表示。设i为整型变量,当i=0时f[i]就代表f[0],..., 当i=99时f[i]就代表f[99]。因此,上述程序简化为: for( i=0; i100; i++) scanf(%f, f[i]); for( i=0; i50; i++) prinft(“%f, ”, (f[i]+f[99-i])/2.0); 可见,引入数组之后,程序变得非常简练。本章讲述的排序和查找等程序设计算法,不使用数组就无法进行。程序设计语言中,数组是必不可少的重要数据类型。 2.一维数组的定义 一维数组是指数组元素只有一个下标的数组。定义一维数组的一般格式如下: 类型名 数组名[整型常量表达式],...; 类型名即数据类型标识符,是每一个数组元素的数据类型,可以是整型、实型、字符型、指针类型、结构体和共用体等。整型常量表达式的值就是该数组元素的个数。例如下述定义: int a[10]; 这条定义语句说明了: (1)定义了一个名为a的一维数组。 (2)方括号中的10规定了a数组有10个元素,它们是a[0]、a[1]、a[2]、...、a[9]。 (3)类型名int规定了a数组的每个元素都是整型变量。 (4)每个元素只有一个下标,因此数组a是一维数组。C语言规定 数组的第一个元素的数组下标(数组下标的下界)是0。在C 语言中一个数组最后一个元素的下标 (数组下标的上界)是:数 组元素的个数减1。例如上述a数组下标的上界为9,则最后 一个元素为a[9]。 (5)系统将为a数组在内存中分配一块20个字节的连续存储单元, 每个元素(int类型)占2个字节,a[0]元素分配的单元地址最 低,a[9]元素分配的单元地址最高,如图4.1所示。 一条语句中,可以定义多个数组,也可以在定义普通变量名的同时定义数组。例如: float x1, y[100], x2, z[10]; 以上语句定义了两个单精度实型变量x1与x2,同时还定义了两个单精度实型数组y与z,其中y数
显示全部