西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第11章 结构体和共用体

第十一章结构体和共用体 ●概述 定义结构体类型变量的方法 ●结构体变量的引用 ●结构体变量的初始化 ●结构体数组 ●指向结构体类型数据的指针 ●共用体 ●用 typedef定义类型
第十一章 结构体和共用体 ⚫ 概述 ⚫ 定义结构体类型变量的方法 ⚫ 结构体变量的引用 ⚫ 结构体变量的初始化 ⚫ 结构体数组 ⚫ 指向结构体类型数据的指针 ⚫ 共用体 ⚫ 用typedef定义类型

概述 个组合项中包含若干个类型不同(或 相同)的数据项,这样的数据结构称为 结构体 例 10011 Liqi.5 Beijing num name sex age score ddr struct student fint num; char name[20] char sex; int age; float score; char addr[30]
概述 一个组合项中包含若干个类型不同(或 相同)的数据项,这样的数据结构称为 结构体 例: num name sex age score addr struct student {int num; char name[20]; char sex; int age; float score; char addr[30]; }; 10011 Li qi M 20 89.5 Beijing

声明结构体类型的一般形式 struct结构体名 成员表列}; 成员表列”称为“域表”,每个成员称 为结构体中的一个域,对各成员(域)的 定义形式如下: 类型名成员名;
⚫ 声明结构体类型的一般形式 struct 结构体名 {成员表列}; “成员表列”称为“域表”,每个成员称 为结构体中的一个域,对各成员(域)的 定义形式如下: 类型名 成员名;

定义结构体类型变量的方法 三种方法: 1.先定义结构体类型,再定义变量名 2.在定义类型的同时定义变量 3.直接定义结构类型变量
定义结构体类型变量的方法 ⚫ 三种方法: 1. 先定义结构体类型,再定义变量名 2. 在定义类型的同时定义变量 3. 直接定义结构类型变量

方法一,假设有如下定义: struct student fint num; char name[20; char sex; int age; float score; char addr[30] 再定义结构体变量stud1和stud2 struct student stud 1. stud2 方法 struct结构体名 成员表列 }变量名表列
⚫ 方法一,假设有如下定义: struct student {int num; char name[20]; char sex; int age; float score; char addr[30]; }; 再定义结构体变量stud1和stud2 struct student stud1, stud2; ⚫ 方法二 struct 结构体名 {成员表列 }变量名表列;

方法 struct 成员表列 }变量名表列 对结构体类型的几点说明 1.类型与变量是不同的概念 2.结构体中的成员可以单独引用 3.成员也可以是一个结构体变量(p162~163) 成员名可以与程序中的变量名相同
⚫ 方法三 struct {成员表列 }变量名表列; ⚫ 对结构体类型的几点说明 1. 类型与变量是不同的概念 2. 结构体中的成员可以单独引用 3. 成员也可以是一个结构体变量(p162~163) 4. 成员名可以与程序中的变量名相同

结构体变量的引用 四项原则 1.不能整体输入输出,只能对各个成员分别引用 结构体变量名成员名(成员运算符“) 2.如果成员本身又属于一个结构体类型,则用多 个成员运算符,一级一级地找到最低一级的成 员,只能对最低一级的成员进行赋值、存取及 运算 3.对成员变量可以像普通变量一样进行各种运算 可以引用成员的地址,也可以应用结构体变量 的地址
结构体变量的引用 四项原则 1. 不能整体输入输出,只能对各个成员分别引用 结构体变量名.成员名 (成员运算符“.”) 2. 如果成员本身又属于一个结构体类型,则用多 个成员运算符,一级一级地找到最低一级的成 员,只能对最低一级的成员进行赋值、存取及 运算 3. 对成员变量可以像普通变量一样进行各种运算 4. 可以引用成员的地址,也可以应用结构体变量 的地址

结构体变量的初始化 ●结构体变量和其它类型变量一样,可以在 定义时指定初始值 struct student i unsigned long num char name [301 char sex Int age; float score char native[10] }stUd1={620101," Li Min",M,18,542.5," Shaanxi"};
结构体变量的初始化 ⚫ 结构体变量和其它类型变量一样,可以在 定义时指定初始值 struct student { unsigned long num; char name[30]; char sex; int age; float score; char native[10]; } stud1={620101,"Li Min",'M',18,542.5,"Shaanxi"};

结构体数组 ●定义 只要说明该结构体变量为数组类型,则每 个数组元素都是一个结构体类型数据 初始化 般形式是在定义数组的后面加上: 初值表列}; ●举例(p266例10.2)
结构体数组 ⚫ 定义 只要说明该结构体变量为数组类型,则每 个数组元素都是一个结构体类型数据 ⚫ 初始化 一般形式是在定义数组的后面加上: ={初值表列}; ⚫ 举例(p266例10.2)

例:对候 include 阝3个候选 人,每次吗 字,要求 struct candidate 输出各人 i char name[30] int count 3 leader[3]=[fLi,O),r Zhang,O),tFeng,OJ maino f int i,j; har leader for(=1;i<=10;i++) i gets(leader_ name) for(=0; j<3: j++) if(strcmp(leader_ name, leaderI]- name)==0) leader[]. count++: 1 printf("%s: %d\n",leader[i] name, leader[i]. count
例:对候选人得票的统计程序。设有3 个候选 人,每次输入一个得票的候选人的名字,要求 输出各人得票结果。 #include #include struct candidate { char name[30]; int count; } leader[3]={{"Li",0},{"Zhang",0},{"Feng",0}}; main() { int i,j; char leader_name[20]; for(i=1;i<=10;i++) { gets(leader_name); for(j=0;j<3;j++) if(strcmp(leader_name,leader[j].name)==0) leader[j].count++; } for(i=0;i<3;i++) printf("%s: %d\n",leader[i].name,leader[i].count); }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第10章 指针.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(授课教案)第六章 输入输出与文件.docx
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(授课教案)第五章 结构体和公用体.docx
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(授课教案)第四章 函数及编译预处理.docx
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(授课教案)第三章 指针和数组.docx
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(授课教案)第二章 C语言基本成分.docx
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(授课教案)第一章 C语言概述.docx
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源_教学大纲.pdf
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第11章 查找.ppt
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第10章 排序.ppt
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第09章 图.ppt
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第08章 树和二叉树.ppt
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第07章 广义表.ppt
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第06章 递归算法.ppt
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第05章 数组.ppt
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第04章 串.ppt
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第03章 堆栈和队列.ppt
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第02章 线性表.ppt
- 西安石油大学:《数据结构》精品课程资源(PPT教学课件)使用C语言(第4版)第01章 绪论(朱战立).ppt
- 西安石油大学:《数据结构》精品课程资源_实验指导书.pdf
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第12章 位运算.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第13章 文件.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第01章 概述(孙友仓).ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第02章 算法——程序的灵魂.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第03章 数据类型、运算符与表达式.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第04章 最简单的C程序.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第05章 逻辑运算和判断选取控制.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第06章 循环控制.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第07章 数组.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第08章 函数.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源(PPT课件)第09章 预处理命令.ppt
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源_作业习题.docx
- 西安石油大学计算机学院:《程序设计语言(C语言)》课程教学资源_实验指导.docx
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第1章 C语言的程序结构(白雪飞).ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第10章 文件操作.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)概述(白雪飞).ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第2章 数据类型、运算符和表达式.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第3章 C语言的基本语句和程序结构设计.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第4章 数组.ppt
- 中国科学技术大学:《C语言程序设计语言》课程教学资源(PPT课件)第5章 函数.ppt