结构体、共用体和枚举类型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第8章 结构体、共用体和枚举类型
8.1 结构体类型 8.2 结构体指针 8.3 共用体 8.4 枚举类型
整理ppt
1
首先我们来看一个问题:假设有一个学生成绩表,记录每个学生的学号 ,姓名以及一些课程的成绩。成绩表如下所示:
学号 姓名
04012 1555
04012 1556
张伟 李智
英 高等 计算机文 C语 语 数学 化基础 言
整理ppt
12
【例8.4】静态结构变量初始化。 #include "stdio.h" main() { static struct student /*定义静态结构变量*/ { int num; char *name; char sex; float score; } stu2,stu1={101,"张三",'M',90}; stu2=stu1; printf("学号=%d\n姓名=%s\n",stu2.num,stu2.name); printf("性别=%c\n成绩=%f\n",stu2.sex,stu2.score); }
{ char name[20]; int age; int sex; float height; }person1; printf("please input name:\n"); scanf("%s",person1.name); printf("please input age:\n");
整理ppt
整理ppt
6
3. 也可以直接定义结构变量。例如: struct { int no; char name[20]; int english; int math; int computer; int clang; }stu1,stu2;
整理ppt
7
• 2.结构体变量的引用 (1)结构成员的表示方式
引用结构成员的一般形式为: 结构变量.成员名
整理ppt
10
(2)结构变量的赋值
【例8.2】给结构变量赋值并输出其值。 #include "stdio.h" main() {
struct stu {
int num; char *name; char sex; float score; }stu1,stu2; stu1.num=101; stu1.name="张三"; printf("请输入性别和成绩:\n"); scanf("%c %f",&stu1.sex,&stu.score); stu2=stu1; printf("学号=%d\n姓名=%s\n",stu2.num,stu2.name); printf("性别=%c\n成绩=%f\n",stu2.sex,stu2.score); }
80 78
86
89
92 96
90
92
整理ppt
2
8.1.1 结构体类型的定义
结构体是一种构造类型(自定义类型),除了 结构体变量需要定义后才能使用外,结构体的类型 本身也需要定义。结构体由若干“成员”组成。每 个成员可以是一个基本的数据类型,也可以是一个 已经定义的构造类型。
结构体类型定义的一般形式为:
struct score stu1,stu2;
定义了两个变量stu1和stu2为score结构类型。
整理ppt
5
2、在定义结构类型的同时定义结构变量。例如: struct score {
int no; char name[20]; int english; int math; int computer; int clang; }stu1,stu2;
整理ppt
11
(3)结构变量的初始化
【例8.3】外部结构变量初始化。 #include "stdio.h" struct student /*定义外部结构变量*/ { int num; char *name; char sex; float score; }stu2,stu1={101,"张三",'M',90}; main() { stu2=stu1; printf("学号=%d\n姓名=%s\n",stu2.num,stu2.name); printf("性别=%c\n成绩=%f\n",stu2.sex,stu2.score); }
9
scanf("%d",&person1.age); printf("please input sex (0 for male and 1 for female):\n"); scanf("%d",&person1.sex); printf("please input height:\n"); scanf("%f",&person1.height); printf("the result is:\n"); printf("name: %s\nage: %d\n",person1.name,person1.age); if(person1.sex==0) printf("sex: male\n"); if(person1.sex==1) printf("sex: female\n"); printf("height: %.2fm\n",person1.height); }
struct 结构类型名
{
类型1 成员1;
类型2 成员2;
......
类型n 成员n;
};
整理ppt
3
下面定义一个有关学生成绩的结构体类型: struct score {
int no; char name[20]; int english; int math; int computer; int clang; };
整理ppt
4
8.1.2 结构体变量的定义与引用
1.结构体变量的定义
下面以前面定义的score结构类型为例来加以说明。 1、先定义结构类型,再定义结构变量。如:
struct score
{பைடு நூலகம்
int no;
char name[20];
int english;
int computer;
int clang;
};
如果将“结构变量.成员名”看成一 个整体,则这个整体的数据类型与结构 中该成员的数据类型相同, 这样就可像 前面所讲的变量那样使用结构变量了。
整理ppt
8
【例8.1】从键盘上输入一个人的姓名、年龄、性别和身高,然后将它们打 印出来。
#include "stdio.h" main( ) { struct person
8.1 结构体类型 8.2 结构体指针 8.3 共用体 8.4 枚举类型
整理ppt
1
首先我们来看一个问题:假设有一个学生成绩表,记录每个学生的学号 ,姓名以及一些课程的成绩。成绩表如下所示:
学号 姓名
04012 1555
04012 1556
张伟 李智
英 高等 计算机文 C语 语 数学 化基础 言
整理ppt
12
【例8.4】静态结构变量初始化。 #include "stdio.h" main() { static struct student /*定义静态结构变量*/ { int num; char *name; char sex; float score; } stu2,stu1={101,"张三",'M',90}; stu2=stu1; printf("学号=%d\n姓名=%s\n",stu2.num,stu2.name); printf("性别=%c\n成绩=%f\n",stu2.sex,stu2.score); }
{ char name[20]; int age; int sex; float height; }person1; printf("please input name:\n"); scanf("%s",person1.name); printf("please input age:\n");
整理ppt
整理ppt
6
3. 也可以直接定义结构变量。例如: struct { int no; char name[20]; int english; int math; int computer; int clang; }stu1,stu2;
整理ppt
7
• 2.结构体变量的引用 (1)结构成员的表示方式
引用结构成员的一般形式为: 结构变量.成员名
整理ppt
10
(2)结构变量的赋值
【例8.2】给结构变量赋值并输出其值。 #include "stdio.h" main() {
struct stu {
int num; char *name; char sex; float score; }stu1,stu2; stu1.num=101; stu1.name="张三"; printf("请输入性别和成绩:\n"); scanf("%c %f",&stu1.sex,&stu.score); stu2=stu1; printf("学号=%d\n姓名=%s\n",stu2.num,stu2.name); printf("性别=%c\n成绩=%f\n",stu2.sex,stu2.score); }
80 78
86
89
92 96
90
92
整理ppt
2
8.1.1 结构体类型的定义
结构体是一种构造类型(自定义类型),除了 结构体变量需要定义后才能使用外,结构体的类型 本身也需要定义。结构体由若干“成员”组成。每 个成员可以是一个基本的数据类型,也可以是一个 已经定义的构造类型。
结构体类型定义的一般形式为:
struct score stu1,stu2;
定义了两个变量stu1和stu2为score结构类型。
整理ppt
5
2、在定义结构类型的同时定义结构变量。例如: struct score {
int no; char name[20]; int english; int math; int computer; int clang; }stu1,stu2;
整理ppt
11
(3)结构变量的初始化
【例8.3】外部结构变量初始化。 #include "stdio.h" struct student /*定义外部结构变量*/ { int num; char *name; char sex; float score; }stu2,stu1={101,"张三",'M',90}; main() { stu2=stu1; printf("学号=%d\n姓名=%s\n",stu2.num,stu2.name); printf("性别=%c\n成绩=%f\n",stu2.sex,stu2.score); }
9
scanf("%d",&person1.age); printf("please input sex (0 for male and 1 for female):\n"); scanf("%d",&person1.sex); printf("please input height:\n"); scanf("%f",&person1.height); printf("the result is:\n"); printf("name: %s\nage: %d\n",person1.name,person1.age); if(person1.sex==0) printf("sex: male\n"); if(person1.sex==1) printf("sex: female\n"); printf("height: %.2fm\n",person1.height); }
struct 结构类型名
{
类型1 成员1;
类型2 成员2;
......
类型n 成员n;
};
整理ppt
3
下面定义一个有关学生成绩的结构体类型: struct score {
int no; char name[20]; int english; int math; int computer; int clang; };
整理ppt
4
8.1.2 结构体变量的定义与引用
1.结构体变量的定义
下面以前面定义的score结构类型为例来加以说明。 1、先定义结构类型,再定义结构变量。如:
struct score
{பைடு நூலகம்
int no;
char name[20];
int english;
int computer;
int clang;
};
如果将“结构变量.成员名”看成一 个整体,则这个整体的数据类型与结构 中该成员的数据类型相同, 这样就可像 前面所讲的变量那样使用结构变量了。
整理ppt
8
【例8.1】从键盘上输入一个人的姓名、年龄、性别和身高,然后将它们打 印出来。
#include "stdio.h" main( ) { struct person