
第8章结构体与共用体 结构体的定义与引用 结构体数组与结构体指针 链表 共用体枚举 类型定义符typedef
1 2 3 4 第8章 结构体与共用体 结构体的定义与引用 结构体数组与结构体指针 链表 类型定义符typedef 共用体 枚举

任务一结构体的定义与引用 c语言提供了一种称为结构体的构造数据类型,用于 解决上述问题,与之相近的另一种数据类型为共用体 此外枚举类型也是一种构造类型,本任务针对结构体 数据类型的定义、结构体类型变量的引用、结构体数 据和指针作逐一讨论
任务一 结构体的定义与引用 “计算机程序”是让计算机完成某项特定任务,而编制的一组指示计算机工作 的指令。计算机就像一个优秀的士兵,他无条件服从长官(程序编写者)的命 令,为了完成一项军事任务,长官下达的一系列命令就是“程序”。 C语言提供了一种称为结构体的构造数据类型,用于 解决上述问题,与之相近的另一种数据类型为共用体, 此外枚举类型也是一种构造类型,本任务针对结构体 数据类型的定义、结构体类型变量的引用、结构体数 据和指针作逐一讨论

任务一结构体的定义与引用 【案例8-1】一个学生的基本情况包括学号、姓名、两科的成绩和平均成绩,用结构体 类型变量输入学生的学号、姓名和两科的成绩,输出此学生的基本信息及平均成绩。 【解题思路】 学生的信息由五个数据项组成,它们的数据类型不尽相同,但同属于一个学生,需把 这些数据项用结构体的方式有机结合起来形成一个整体,才能将学生做为一个操作对 象来进行描述。 【程序代码】
任务一 结构体的定义与引用 【案例8-1】一个学生的基本情况包括学号、姓名、两科的成绩和平均成绩,用结构体 类型变量输入学生的学号、姓名和两科的成绩,输出此学生的基本信息及平均成绩。 【解题思路】 学生的信息由五个数据项组成,它们的数据类型不尽相同,但同属于一个学生,需把 这些数据项用结构体的方式有机结合起来形成一个整体,才能将学生做为一个操作对 象来进行描述。 【程序代码】

任务一结构体的定义与引用 #include #include struct student /*定义学生结构体数据类型*/ {int num;/*学号用整型数表示*/ char name[10];/*姓名用字符型数组表示*/ int score[2];/*两科成绩用整型数组表示*/ float aver;;/*平均分用实型数表示*/
任务一 结构体的定义与引用 #include #include struct student /*定义学生结构体数据类型 */ { int num;/* 学号用整型数表示 */ char name[10]; /*姓名用字符型数组表示 */ int score[2]; /*两科成绩用整型数组表示 */ float aver; /*平均分用实型数表示 */ };

任务一结构体的定义与引用 void main() struct student stu; /*定义变量stu为学生结构体类型*/ stu.num=10001;/*为变量的学号赋值*/ strcpy(stu.name,"Jones");/*为变量的姓名赋值*/ stu.score[0]=78; stu.score[1]=75;/*为变量的两科成绩赋值*/ stu.aver=(stu.score[o]+stu.score[1])/2.0;/*求变量的平均分*/ printf("%d\n",stu.num);
任务一 结构体的定义与引用 void main() { struct student stu; /* 定义变量 stu 为学生结构体类型 */ stu.num=10001; /*为变量的学号赋值 */ strcpy(stu.name," Jones"); /*为变量的姓名赋值 */ stu.score[0]=78; stu.score[1]=75;/* 为变量的两科成绩赋值 */ stu.aver=(stu.score[0]+ stu.score[1])/2.0; /*求变量的平均分 */ printf("%d\n",stu.num);

任务一结构体的定义与引用 printf("%s\n",stu.name); printf("%d,%d\n",stu.score[o],stu.score[1]); printf("%f n",stu.aver); } 【运行结果】 10001 Jones 78,75 76.500000
任务一 结构体的定义与引用 printf("%s\n",stu.name); printf("%d,%d\n", stu.score[0], stu.score[1]); printf("%f\n", stu.aver); } 【运行结果】 10001 Jones 78,75 76.500000

任务一结构体的定义与引用 算结构体类型和结构体变量的定义 1.结构体类型定义 结构体是一个用同一名字引用的变量集合体,它提供了将相 关信息组合在一起的手段。结构体是用户自定义的数据类型 结构体定义也就是定义结构体名字和组成结构体的成员属性 是建立一个可用于定义结构体类型变量的模型
任务一 结构体的定义与引用 1.结构体类型定义 结构体是一个用同一名字引用的变量集合体,它提供了将相 关信息组合在一起的手段。结构体是用户自定义的数据类型, 结构体定义也就是定义结构体名字和组成结构体的成员属性, 是建立一个可用于定义结构体类型变量的模型。 算结构体类型和结构体变量的定义

任务一结构体的定义与引用 定义一个结构体类型的一般形式为: struct结构体名 { 类型成员变量名; 类型成员变量名 … 方 注意:定义最后使用分号结束
任务一 结构体的定义与引用 定义一个结构体类型的一般形式为: struct 结构体名 { 类型 成员变量名; 类型 成员变量名; ... }; 注意:定义最后使用分号结束

任务一结构体的定义与引用 构成结构体的每一个类型变量称为结构体成员,它象数组的元 素一样,但数组中元素是以下标来访问的,而结构体是按成员变 量名字来访问成员的。定义一个结构体类型与定义一个变量 不同,定义结构体时系统不会分配内存单元来存放各数据项 成员,而是告诉系统它由哪些类型的成员构成,各占是什么 数据类型,并把它们当作一个整体来处理
任务一 结构体的定义与引用 构成结构体的每一个类型变量称为结构体成员,它象数组的元 素一样,但数组中元素是以下标来访问的,而结构体是按成员变 量名字来访问成员的。定义一个结构体类型与定义一个变量 不同,定义结构体时系统不会分配内存单元来存放各数据项 成员,而是告诉系统它由哪些类型的成员构成,各占是什么 数据类型,并把它们当作一个整体来处理

任务一结构体的定义与引用 下面就是一个结构体类型student的定义: struct student int num; char name[10]; int score[2]; float aver; }方
任务一 结构体的定义与引用 下面就是一个结构体类型 student 的定义: struct student { int num; char name[10]; int score[2]; float aver; };