结构体与共用体 第一讲 主要 内容 重点 难点 问题 提出 结构体变量的引用 前面已经介绍了基本数据类型──整型、浮点型、字符型,也介绍了例子: int a[5]; 一种构造类型──数组,数组中各元素是属于同一种类型的。 例如:一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项, 各项的数据类型并不相同(如下图) num name sex age score addr 通过举例说明定义结构10010 Li Fan m 18 88 chengde 如果将num、name、sex、age、score、addr分别定义为互相独立体类型的必要性。 的简单变量,难以反映它们之间的内在联系,如何解决此类问题呢? 内容 1.结构体的概念及其基本操作 2.结构体变量的引用方法 3.结构体数组的使用 1.对结构体类型的理解 2.结构体类型的使用 说明 1 / 1
一、结构体类型引入 处理这样的二维表数据时,通常以记录为单位进行处理, 而每条记录中包含多种数据类型,按以前所讲的数据类型没有办法处理。 故引入了结构类型。即将多个基本类型作为一个集体定义成一种新的用户自定义类型。例: Struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; 说明: 1.Struct 是一个关键字,标志着这是一个结构体类型。 2.Struct student是一个类型名。 二、结构类型的使用步骤 step1:说明所定义的结构类型的结构形式,成员构成; ?相当于建立数据库二维表的表结构. step2:用所定义的结构类型定义结构变量(记录变量); ?相当于为数据库二维表的各记录定义一个记录名. step3:通过所定义结构变量(记录变量)访问对应记录中的成员. ?相当于编辑数据库二维表的记录中的各项. (1)结构类型的说明: 在Turbo C中, 结构也是一种数据类型, 但不同二维表所对应的结构不同,故在使用前需要对结构情况进行说明,即结构类型的说明. 结构类型说明的一般格式为: 和基本类型变量进行比较分析,进一步说明必须定义结构体类型。 强调 注意与以往变量应用的区别 1 / 1
比较 举例 说明: 1)\是关键字,是结构类型的标志; 2)\结构名\是用户所说明的结构类型的名称的标识符,而不是变量名,以后可用它来定义结构变量. 3)\类型名\为以前所讲的各种数据类型(int, char等),也可以是已说明的结构类型。 4)\成员变量名\是构成结构的每一个成员变量的名称,相当于数据库二维表中的各字段名. 例1: struct date { int year; int month; int day; }; 例2: struct student { char name[12]; char sex; sturct date birthday; float sc[4]; } 在C语言中,结构类型可以嵌套定义,所以以上两例可以合并为: struct student { char name[12]; char sex; struct date { int year; int month; int day; } birthday; float sc[4]; } (2)结构变量的定义及结构变量的内存分配: 1)结构变量的定义 象其它类型的变量一样, 在使用结构变量时要先对其定义。结构变量可以是普通结构变量,结构数组,和结构指针等形式. 定义结构变量有三种格式,现分别举例说明: struct 结构名 { 类型名1 成员变量名1; 类型名2 成员变量名2; ... 类型名n 成员变量名n; } 先声明一个 Struct date 类型,然后在定义Struct student类型时,将成员 Birthday定义为Struct date类型。 1 / 1