教学要点:
构造数据类型:根据实际需要利用已有的基本数据类型来构造所需的数据类型;按规则将多个基本数据类型有机组合构成的数据类型。
数组(系统已定义)。
结构体(用户自定义);
共用体(用户自定义)。
抽象数据类型:类、对象、方法(属于面向对象程序设计)
结构体(structure)是C语言提供的由程序员拟定的一种数据类型。把逻辑上相关的变量组合到一起,通过定义结构体类型的变量来存储同一条记录的相关信息。
结构体的声明:
struct 结构体名
{
数据类型 成员名(变量名); //若干个成员列表
};
说明:(1) struct 是定义结构体类型的关键字,不能省略;
(2)“结构体名”用户自定义,要遵循标识符命名规范;
(3)“成员列表”中,每个成员必须说明类型和成员名;
(4)“{ ...... };” 不可缺少。
结构体类型变量的定义:
方法1、先定义结构体类型,才能定义结构体类型变量
例:struct Student
{
int number;
char name[20];
float chinese;
float english;
float math;
};
struct Student LM,ML; // struct 结构体名 变量名列表;
完成上述定义后,结构体变量LM、ML具有与“Student”相同的结构。
Student 是对一种结构体类型的声明,不能直接使用。
方法2、定义结构体类型的同时定义结构体类型变量
例:struct Student
{
int number;
char name[20];
float chinese;
float english;
float math;
} LM,ML; //变量名列表;
完成上述定义后,结构体变量LM、ML具有与“Student”相同的结构。
方法3、定义结构体类型的同时定义结构体类型变量
例:struct
{
int number;
char name[20];
float chinese;
float english;
float math;
} LiMing,MaLi; //变量名列表;
完成上述定义后,仅有结构体变量LM、ML具有相同的结构。
无法再定义其他与该结构一致的结构体变量。
结构体嵌套:一个结构体结构内包含另一个结构体作为成员。
例:
struct Scroe
{
float chinese;
float english;
float math;
};
struct Student
{
int number;
char name[20];
struct Scroe chengji; //chengji 为结构体类型成员
};
struct Student LM,ML; //struct 结构体名 变量名列表;
结构体类型结构、变量的定义说明:
(1)类型结构和变量是不同的概念,不能混淆。
对于结构体变量可以赋值、存取、运算,而不能对类型进行类似操作;
程序编译时,只对变量分配空间,而不对类型分配空间。
(2)结构体中的成员,可以单独使用,与普通变量作用相同。
(3)成员名可与程序中其他变量名相同,互不干扰(尽量避免)。
(4)成员也可以是一个结构体变量,构成结构体嵌套。