本次课内容:1、结构体类型概述,2、结构体类型变量的定义和引 用 教学目的:掌握结构体类型的相关概念,掌握结构体变量的定义和 引用。 重点:结构体概念、定义和引用。 难点:结构体成员的引用。 预习: 数组、记录、结构体。 如:一个学生的情况描述需多种数据类型(一个记录),一个数组 又只能存放一种数据类型,当用数组来记录学生的记录时,需多个 不同类型的数组,操作不方便。C语言采用结构体类型来进行记录 的描述
本次课内容:1、结构体类型概述,2、结构体类型变量的定义和引 用。 教学目的:掌握结构体类型的相关概念,掌握结构体变量的定义和 引用。 重点:结构体概念、定义和引用。 难点:结构体成员的引用。 预习: 数组、记录、结构体。 如:一个学生的情况描述需多种数据类型(一个记录),一个数组 又只能存放一种数据类型,当用数组来记录学生的记录时,需多个 不同类型的数组,操作不方便。C语言采用结构体类型来进行记录 的描述
结构体类型概述 结构体概念及定义 结构体类型:由一些不同类型的数据组合而成的数据类型。如 如:学生一般情况数据构成由:姓名、年龄、性别、民族、住址、 电话等。 2、定义 如: struct student 注:定义结构体类型,不是定 char name 20i 义变量,只是说明类型的结构, int age; 类型说明不占内存 char sex: char nation; Student是一个具有六个成员的 char address 20; 结构体数据类型。引用时所占 long tel; 字节总数为:48字节(各成员 所占字节总和)。 般形式: struct结构体名 成员项表};
一、结构体类型概述 1、结构体概念及定义 结构体类型:由一些不同类型的数据组合而成的数据类型。如 如:学生一般情况数据构成由:姓名、年龄、性别、民族、住址、 电话等。 2、定义 如: struct student { char name[20]; int age; char sex; char nation; char address[20]; long tel; }; 一般形式: struct 结构体名 { 成员项表 }; 注:定义结构体类型 ,不是定 义变量,只是说明类型的结构, 类型说明不占内存。 Student 是一个具有六个成员的 结构体数据类型。引用时所占 字节总数为:48字节(各成员 所占字节总和)
结构体类型变量的定义和引用 1、结构体类型变量的定义 (1)、定义了结构类型后定义变量 tH: struct student worker students 类型标识符结构体变量 般形式: sturct结构体类型名变量名表; 如: struct std 定义结构的同时定义变量举例 char name[10] 如 struct std int numa float score: char name[10 struct std students var int num; (2)定义结构的同时定义变量 float score 一般形式: 3 struct std students, var; sturct结构体类型名 成员列表}变量名表
二、结构体类型变量的定义和引用 1、结构体类型变量的定义 (1)、定义了结构类型后定义变量 如:struct student worker,students; 类型标识符 结构体变量 一般形式: sturct 结构体类型名 变量名表; 如:struct std { char name[10] int num; float score; }; struct std students,var; (2)定义结构的同时定义变量 一般形式: sturct 结构体类型名 { 成员列表 } 变量名表; 定义结构的同时定义变量举例 如: struct std { char name[10] int num; float score; } struct std students,var;
(3)、直接定义结构体类型变量 如: struct char name 10]; int age char sex: 3 students, worker; (4)、嵌套定义 在结构体中利用已经定义过的结构体类型来定义成员。 如: struct date struct person int month int day; char name 10; Int year; struct date birthday; char sex; int age:
(3)、直接定义结构体类型变量 如:struct { char name[10]; int age; char sex; } students,worker; (4)、嵌套定义 在结构体中利用已经定义过的结构体类型来定义成员。 如:struct date { int month; int day; int year; }; struct person { char name[10]; struct date birthday; char sex; int age; };
结构体类型的内存分配: struct date name[10 int month nt day month int year; }; day birthday struct person year seX age char name 10li struct date birthdays char sex: Int age; birthday name[10l month day year sex age
结构体类型的内存分配: struct date { int month; int day; int year; }; struct person { char name[10]; struct date birthday; char sex; int age; }; name[10] birthday sex age month day year name[10] birthday month day year sex age
3、结构体变量的引用 2、变量的初始化 struct date (1)、引用变量中的一个成员 int month; 如: student.age int day: 引用变量 student中的age(年龄) int year, 成员。 struct person 说明:访问变量中的成员,用 “”将变量和成员隔开。 char name[10; struct date birthday; 又如: student. birthday.day char sex: 引用 studen中嵌套成员day。 int age; } student={“ wang Ii”,12,15,1985,m’,18};
2、变量的初始化 struct date { int month; int day; int year; }; struct person { char name[10]; struct date birthday; char sex; int age; }student ={“wang li”,12,15,1985,’m’,18}; 3、结构体变量的引用 (1)、引用 变量中的一个成员 如:student . age 引用变量student中的age(年龄) 成员。 说明:访问变量中的成员,用 “.”将变量和成员隔开。 又如:student . birthday . day 引用student中嵌套成员day
(2)结构体变量之间赋值 结构体变量在同类型的情况下可以相互赋值。 struct std char name 10; char sex; int age; float score } studentI={“ wang li”,,m’,18,95.5} struct std student2: student2=student1 4、结构体的输入和输出 如: scanf“%s%cⅦm”, student1 name,& studenti sex) scanf( od %fn", &studentl age, &studentI score); printf(“%s%cⅦn”, studentI.name, studentI.sex); 汪:rinf(“%d%fm”, studenti.ge, student1. score); 结构体变量不能整体输入和输出,必须通过成员输入输出
(2)结构体变量之间赋值 结构体变量在同类型的情况下可以相互赋值。 struct std { char name[10]; char sex; int age; float score }student1 ={ “wang li” , ’m’ , 18 , 95.5 }; struct std student2; student2=student1; 4、结构体的输入和输出 如:scanf(“%s %c\n”,student1.name,&student1.sex); scanf(“%d %f\n ”,&student1.age,&student1.score); printf(“%s %c\n”,student1.name, student1.sex); printf(“%d %f\n” ,student1.age, student1.score); 注:结构体变量不能整体输入和输出,必须通过成员输入输出
举例 7.1定义一个结构体变量,其成员包括:职工号、职工名、性别 年龄、工龄、工资、地址。 struct zg long num; char name 20]; char sex age, int length; float salary, char address 30 I worker; 小结 结构体类型,结构体成员; 2、结构体类型、变量定义; 3、结构体类型变量的引用
举例: 7.1 定义一个结构体变量,其成员包括:职工号、职工名、性别、 年龄、工龄、工资、地址。 struct zg { long num; char name[20]; char sex ; int age; int length; float salary; char address[30]; }worker; 小结: 1、结构体类型,结构体成员; 2、结构体类型、变量定义; 3、结构体类型变量的引用