当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《C语言》第8章 结构体、共用体和枚举类型

资源类别:文库,文档格式:PPT,文档页数:16,文件大小:38.5KB,团购合买
8.1 结构体类型 8.2 结构体指针 8.3 共用体 8.4 枚举类型
点击下载完整版文档(PPT)

第8章结构体、共用体和枚举类型 8.1结构体类型 8.,2结构体指钍 83共用体 84枚举类型

第8章 结构体、共用体和枚举类型 8.1 结构体类型 8.2 结构体指针 8.3 共用体 8.4 枚举类型

8.1.1结构体类型的定义 结构体是一种构造类型(自定义类型),除了 结构体变量需要定义后才能使用外,结构体的类型 本身也需要定义。结构体由若干“成员”组成。每 个成员可以是一个基本的数据类型,也可以是一个 经定义的构造类型。 结构体类型定义的一般形式为: stuc结构类型名 类型1成员1; 类型2成员2; 类型n成员n;

8.1.1 结构体类型的定义 结构体是一种构造类型(自定义类型),除了 结构体变量需要定义后才能使用外,结构体的类型 本身也需要定义。结构体由若干“成员”组成。每 个成员可以是一个基本的数据类型,也可以是一个 已经定义的构造类型。 结构体类型定义的一般形式为: struct 结构类型名 { 类型1 成员1; 类型2 成员2; ...... 类型n 成员n; };

说明: struct score是结构体类型名, struct是关 键词,在定义和使用时均不能省略。 该结构体类型由6个成员组成,分别属于 不同的数据类型,分号“;”不能省略; 成员含义同前 在定义了结构体类型后,就可以进一步 定义该结构体类型的变量,并在程序中使 用它们了

说明: • struct score是结构体类型名,struct是关 键词,在定义和使用时均不能省略。 • 该结构体类型由6个成员组成,分别属于 不同的数据类型,分号“;”不能省略; 成员含义同前。 • 在定义了结构体类型后,就可以进一步 定义该结构体类型的变量,并在程序中使 用它们了

812结构体变量的定义与引用 1.结构体变量的定义 结构是一个新的数据类型,但它本身并不 是变量,它不占用任何空间,也不能像变量那 样出现在表达式中。因此,要想使用某种结构 类型,就需要定义该结构类型的变量。结构变 量也可以像其它类型的变量一样赋值、运算 不同的是结构变量以成员作为基本变量

8.1.2 结构体变量的定义与引用 1.结构体变量的定义 结构是一个新的数据类型,但它本身并不 是变量,它不占用任何空间,也不能像变量那 样出现在表达式中。因此,要想使用某种结构 类型,就需要定义该结构类型的变量。结构变 量也可以像其它类型的变量一样赋值、运算, 不同的是结构变量以成员作为基本变量

下面以前面定义的 Score结构类型为例来加以 说明。 先定义结构类型,再定乂结构变量。如: struct score int no char name 20 int english Int computer int clang struct score stul stu2 定义了两个变量stu和stu2为 score结构类型

下面以前面定义的score结构类型为例来加以 说明。 1、先定义结构类型,再定义结构变量。如: struct score { int no; char name[20]; int english; int computer; int clang; }; struct score stu1,stu2; 定义了两个变量stu1和stu2为score结构类型

2.结构体变量的引用 (1)结构成员的表示方式 ·结构变量被定义后,就可以在程序中使用它。 对结构变量的使用是通过对它的成员来实现的。 引用结构成员的一般形式为: 结构变量成员名 如果将“结构变量成员名”看成一个整体,则 这个整体的数据类型与结构中该成员的数据类 型相同,这样就可像前面所讲的变量那样使用 结构变量 下面这个程序定义了一个结构变量,并进行了 使用

• 2.结构体变量的引用 • (1)结构成员的表示方式 • 结构变量被定义后,就可以在程序中使用它。 对结构变量的使用是通过对它的成员来实现的。 • 引用结构成员的一般形式为: • 结构变量.成员名 • 如果将“结构变量.成员名”看成一个整体,则 这个整体的数据类型与结构中该成员的数据类 型相同, 这样就可像前面所讲的变量那样使用 结构变量了。 • 下面这个程序定义了一个结构变量,并进行了 使用

8.1.3结构体数组 结构数组就是具有相同结构类型的变量集合。结构数组 的每一个元素都是具有相同结构类型的下标结构变量。在实 际应用中,终常用结枃数组来表示县有梖回数据结枃的 群体。如 班的学生档案, 职工资 假如要记录一个班级冋学的姓名、性别、年龄和住址, 就可以定义为一个结构数组。如下所示: struct char name char sex[21 Int age char a dr[40]; 3 student301 此处定义了一个结构数组 student,共有30个数组元素, student[0]~ student[29]。每个数组元素都具有 struct student 的结构形式

8.1.3 结构体数组 • 结构数组就是具有相同结构类型的变量集合。结构数组 的每一个元素都是具有相同结构类型的下标结构变量。在实 际应用中,经常用结构数组来表示具有相同数据结构的一个 群体。如一个班的学生档案,一个单位的职工资料等。 • 假如要记录一个班级同学的姓名、性别、年龄和住址, 就可以定义为一个结构数组。如下所示: • struct • { • char name[8]; • char sex[2]; • int age; • char addr[40]; • }student[30]; • 此处定义了一个结构数组student,共有30个数组元素, student [0]~student [29]。每个数组元素都具有struct student 的结构形式

对外部结构数组或静态结构数组可以作初始化赋值,例 如 struct stu Int num char name char sex; float score °}boy[5]= 101, LI ping","M",45}, (102, Zhang ping", M, 62.5, {103," He fang","F",92.5}, (104, Cheng ling", F,87) {105, Wang ming","M"258}; 当对全部元素作初始化赋值时,也可不给出数组长度

• 对外部结构数组或静态结构数组可以作初始化赋值,例 如: • struct stu • { • int num; • char *name; • char sex; • float score; • }boy[5]={ • {101,"Li ping","M",45}, • {102,"Zhang ping","M",62.5}, • {103,"He fang","F",92.5}, • {104,"Cheng ling","F",87}, • {105,"Wang ming","M",58}; • } • 当对全部元素作初始化赋值时,也可不给出数组长度

8.2结构体指针 821指向结构体变量的指针 结构变量被定义以后,系统将在进行编译时为其分配 定的存储空间,故结构变量与普通变量一样有一个存储空 间的起始地址,因此可以定义一个指针变量用来存储结构 变量的起始地址,称为指向结构的指针变量。结构指针变 量中的值是所指向的结构变量存储空间的首地址。通过结 构指针即可访问该结构变量,这与数组指针和函数指针的 况是相同的。 结构指针变量说明的一般形式为: struct结构名*结构指针变量名 例如: struct person char t name Int age Int sex 3 personl ,*p

8.2 结构体指针 8.2.1 指向结构体变量的指针 结构变量被定义以后,系统将在进行编译时为其分配一 定的存储空间,故结构变量与普通变量一样有一个存储空 间的起始地址,因此可以定义一个指针变量用来存储结构 变量的起始地址,称为指向结构的指针变量。结构指针变 量中的值是所指向的结构变量存储空间的首地址。通过结 构指针即可访问该结构变量,这与数组指针和函数指针的 情况是相同的。 结构指针变量说明的一般形式为: struct 结构名 *结构指针变量名 例如: struct person { char * name; int age; int sex; } person1, *p;

【例8.8】结构指针变量的使用方法举例。 #include"stdio. h struct stu Bint num char *name char sex float score 3 boy 1=102, " Zhang San",M, 88, *pstu main i pstu=&boy l printf("Number=%d nName=%sn",boy 1. num, boy 1 name) printf("Sex=%cn Score=%fn In", boy 1. sex, boy 1 score printf("Number=%d nName=%osn" pstu). num, (pstu) name); printf("Sex=%cn Score=%fnn" pstu).Sex, (pstu) score) printf("Number=%dInName%osn",pstu->num, pstu->name) printf("Sex=%cn Score=%fnInpstu->sex, pstu->score

• 【例8.8】结构指针变量的使用方法举例。 • #include "stdio.h" • struct stu • {int num; • char *name; • char sex; • float score; • } boy1={102,"Zhang San",'M',88},*pstu; • main() • { pstu=&boy1; • printf("Number=%d\nName=%s\n",boy1.num,boy1.name); • printf("Sex=%c\nScore=%f\n\n",boy1.sex,boy1.score); • printf("Number=%d\nName=%s\n",(*pstu).num,(*pstu).name); • printf("Sex=%c\nScore=%f\n\n",(*pstu).sex,(*pstu).score); • printf("Number=%d\nName=%s\n",pstu->num,pstu->name); • printf("Sex=%c\nScore=%f\n\n",pstu->sex,pstu->score); • }

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共16页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有