第7章-结构体、共用体和枚举类型.pptVIP

  • 3
  • 0
  • 约1.01万字
  • 约 46页
  • 2019-09-11 发布于福建
  • 举报
第7章 结构体、共用体和枚举类型 7.1 结构体类型 7.2 结构体数组 7.3 结构体指针变量 7.4 链表 7.5 共用体 7.6 枚举类型 6.1 结构体类型 结构体类型的定义 示例: struct student { int num; char name[20]; char sex; int age; char addr[30]; }; 结构体类型的定义 结构体类型定义的一般形式 struct 结构名 { 数据类型 成员名 1; 数据类型 成员名 2; …… 数据类型 成员名 n; }; 结构体类型变量的定义 1、在定义类型的同时定义变量 struct student {int num; char name[20]; char sex; int age; char addr[30]; }student1, student2; 结构体类型变量的定义 2、先定义结构体类型再定义变量名 struct student {int num; char name[20]; char sex; int age; char addr[30]; }; struct student student1, student2; 结构体类型变量的定义 3、直接定义结构类型变量(无名定义) struct {int num; char name[20]; char sex; int age; char addr[30]; } student1, student2; 结构体变量的存储 几点说明: 1. 类型与变量是不同概念,不要混淆; 2. 结构体中的成员,可以单独使用,其作用与地位相当于普通变量; 3. 成员也可以是一个结构体变量;例如: 结构体变量的初始化 结构体变量的初始化 结构体变量的成员的访问 结构体变量的成员的访问(续) 例7-2 结构体变量初始化 (p175) 例7-3 结构体变量赋值 7.2 结构体数组 结构体数组 示例:设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。 7.3 结构体指针变量 结构体指针 指向运算符示例 例7-7 用指向结构体数组的指针输出结构体数组中各成员的值(p180) #includestdio.h #includestring.h int main() { struct STUDENT { long no; char name[20]; char sex; float score; }student[5]={{11001,Li ping, M, 45}, {11002, Zhang ping, M, 62.5}, {11003, He fang, F, 92.5}}; struct STUDENT *p; printf(no name sex score\n); for(p=student;pstudent+3;p++) printf(%-8ld %-12s %-5c %.1f\n, p-no, p-name, p-sex, p-score); } 结构体指针的应用 7.4 链表 链表结构(1) 链表结构(2) 单链表结点的类型定义 struct 结构名 { 数据成员列表; struct 结构名 *指针名; }; 链表的基本操作 对链表的基本操作有建立、查找、插入、删除和修改等。 (1) 建立链表是指从无到有建立一个链表,即往空链表中依次插入一个结点,并保持结点之间的前驱和后继的关系。 (2)查找操作是指在给定的链表中,查找具有检索条件的结点。 (3)插入操作是指在某两个结点之间插入一个新的结点。 (4)删除操作是指在给定的链表中,删除某个特定的结点,也就是插入的逆过程。 (5) 修改操作是指在给定的链表中,首先根据某已知的条件,查找到该结点,再修改数据域中的某些数据项。 链表的建立 struct STUDENT *create(){ struct STUDENT *head, *p1, *p2; head = (struct STUDENT *)malloc(LEN); head-next = NULL; p1 = head; p2 =

文档评论(0)

1亿VIP精品文档

相关文档