内容正文:
C 语言程序设计
2023
翻转课堂实用教程
10.1 结构体
引入结构体
前面章节中学到的数组,用于存储相同类型的数据,如每位应届生的薪资。
若保存每位应届生的个人信息,比如姓名、性别、年龄、毕业学校、毕业时间等,可以定义不同的变量,但体现不了他们同属一个人的信息的内在联系。
结构体可用来存放一组不同类型的、具有内在联系的数据。
姓名
性别
年龄
毕业学校
毕业时间
展示几种函数调用的截图,讲解:函数在调用时需要加上小括号,有时小括号中还需要一些参数,有的函数的调用还可以在printf中作为输出。
1
2
3
结构体类型的定义
结构体变量的定义
结构体变量的初始化和使用
知识点
结构体案例
案例分析
结构体相关练习题
练习题
讲解本节的主要内容,方便学生的学习。
10.1.1结构体知识点
程序员自定义的构造数据类型, “模板”,包含多个属性,用变量来表示,每个变量称为结构体成员。
struct,定义结构体类型的关键字,不可省略
1、结构体类型的定义形式如下 :
struct 结构体名{
数据类型名 变量1; //又称为结构体成员1
数据类型名 变量2; //又称为结构体成员2
…
}; //此处的分号不可以省略
结构体类型名为:struct 结构体名
举例1:定义一张桌子的结构体类型,桌子包括长、宽、高、价格、材质这5个属性。
struct desk{
double length,width,height; //同类型的结构体成员可用逗号,隔开一起定义
double price;
char material[6]; //用字符串来保存材质,如木、铁等。
};
代表着实际应用中的桌子模板,5个结构体成员,分别表示长、宽、高、价格、材质这5个属性。
1、结构体类型的定义形式如下 :
10.1.1结构体知识点
举例2:定义一个表示三维坐标点的结构体类型,坐标点包含x,y,z三个坐标值。
struct point{
int x, y,z;
};
typedef struct point Point; //给struct point起个短一些的别名Point
虽然x,y,z都是整形,可以用数组来存储,但用结构体来表示,更能体现x,y,z为同一个点的三个坐标,反应三者的内在联系
1、结构体类型的定义形式如下:
10.1.1结构体知识点
举例3:结构体类型的嵌套定义
struct size{
double length;
double width;
double height;
};
typedef struct size Size; //为struct size起的别名Size,后面用Size代替struct size
struct desk{
Size mySize; //成员变量也为一个结构体类型
double price;
char material[6];
};
1、结构体类型的定义形式如下 :
10.1.1结构体知识点
10.1.1结构体知识点
2、结构体变量的定义 :
结构体类型是一种构造数据类型,定义好数据类型后,就可以定义该数据类型的变量了。
三种结构体变量的定义方式:
(1)分开定义
(2)同时定义
(3)无类型定义
10.1.1结构体知识点
2、结构体变量的定义 :
(1)分开定义
指先定义结构体类型,再定义这种结构体类型的变量,一般形式如下:
struct 结构体名{
数据类型名 变量1; //又称为结构体成员1
数据类型名 变量2; //又称为结构体成员2
…
};
struct 结构体名 结构体变量名表;
10.1.1结构体知识点
2、结构体变量的定义 :
(1)分开定义
例如:
struct desk{
double length,width,height;
double price;
char material[6];
} ;
struct desk desk1,desk2;
10.1.1结构体知识点
2、结构体变量的定义 :
(2)同时定义
指在结构体类型的定义最后定义变量,一般形式如下:
struct 结构体名{
数据类型名 变量1; //又称为结构体成员1
数据类型名 变量2; //又称为结构体成员2
…
}结构体变量名表; //多个变量名之间用逗号,隔开
10.1.1结构体知识点
2、结构体变