- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 结构体、共用体与枚举类型 教学目的: 掌握结构体类型和共用体类型的定义 掌握结构体类型和共用体类型变量 掌握结构体类型数组的使用 掌握结构体类型指针 掌握结构体与函数 掌握简单链表的应用 了解位段结构 掌握枚举类型并能用typedef自定义类型 教学内容: 结构体 共用体 位段结构 枚举类型 用typedef定义类型 结构体综合应用举例 8.1 结构体 8.1.1 结构体类型的定义 结构体是一种构造数据类型,用于把不同类型的数据组合成一个整体------ 自定义数据类型。 结构体类型的定义: 结构体类型还可以嵌套定义,既一个结构体成员可以是其他结构体类型但这种嵌套不能包含自身,既不能由自己定义自己。 8.1.2 结构体类型变量 结构体类型变量的定义:结构体定义之后,即可进行变量定义。定义结构体类型变量,有以下三种方法。 先定义结构体类型,再定义结构体变量 注意: 结构体类型与结构体变量是不同的概念。 类型:不分配内存; 变量:分配内存 类型:不能赋值、存取、运算; 变量:可以 结构体变量中的成员,可以单独使用,它的作用与地位相当于普通变量 。 结构体成员名与程序中变量名可重名,两者不代表同一对象,不会混淆 。 将一个变量定义为标准类型(基本数据类型)与定义为结构体类型不同之处在于:后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(例:struct student),不能只指定为“struct型”而不指定结构体名。而在定义变量为整型时,只需指定为int型即可。换句话说,可以自定义许多种具体的结构体类型。 2. 结构体类型变量的引用:在ANSI C中除了允许具有相同类型的结构变量相互赋值以外,一般对结构体变量的使用,包括赋值、输入、输出、运算等都是通过结构变量的成员来实现的。 引用方式: 结构体变量名.成员名 结构体变量不能整体引用,只能引用变量成员 3. 结构体类型变量的初始化 在初始化时,按照所定义的结构体类型的数据结构,依次写出各初始值,在编译时就将它们赋给此变量中的各成员;对应结构体变量定义的三种形式均可进行初始化 。 如果一个结构体类型内又嵌套另一个结构体类型,则初始化时仍然是对各个基本类型的成员赋值。 4. 结构体变量的输入与输出 C语言不允许把一个结构体变量作为一个整体进行输入或输出 。而应该按各变量成员进行输入输出 ,且各成员在被存储和被引用时与相应类型的普通变量相同。 8.1.3 结构体类型数组 一个结构体变量中可以存放一组数据即一个对象(如一个学生的学号、姓名、成绩……等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。 结构体数组与以前介绍过的数值型数组不同之处在于: 每个数组元素都是一个结构体类型的变量,它们都分别包括相同的成员(分量)项。 1. 结构体类型数组的定义 先定义结构体类型,再定义结构体数组 定义结构体类型的同时定义结构体数组 直接定义结构体类型数组 2. 结构体数组的初始化 对结构体数组初始化时要将每个元素的数据分别用花括号扩起来 当所赋初值的数据组的个数和数组元素个数相等时,数组元素个数可以省略不写,少于则要保留数组元素个数 当不完全赋值时,系统自动对未赋值的元素或元素的成员赋零值 3. 结构体数组的引用 结构体数组中每个元素相当于一个结构体变量,根据引用结构体变量的规则,引用结构体数组元素有以下规则: (1)引用某一个元素的一个成员: 结构体数组名[元素下标]. 结构体成员名 (2)可以将一个结构体数组元素赋给同一结构体数组中的另一个元素或者赋给同一类型的变量。 (3)不能把结构体数组元素作为一个整体直接输入输出,只能以单个成员为对象进行输入输出。 8.1.4 结构体类型指针 一个结构体变量在内存中占有一段连续的内存空间,当用一个指针变量指向某个结构体变量时,该指针变量称为结构体指针变量,它的值是其所指向的结构体变量的首地址。 例8.4 结构体类型指针举例 #includestdio.h struct st { int num; char *name; char sex; float score; } st1 = { 10004, Zhang Ying, F, 88.5}, *p1; main() { p1 = st1; printf( Number=%d\nName=%s\n, st1.num, ); printf( Sex=%c\nScore=%f\n\n, st1.sex, st1.score); printf( Num
您可能关注的文档
- 新计算机网络实用技术(第二版) 雷建军 电子教案 第七章 72.ppt
- 新计算机网络实用技术(第二版) 雷建军 电子教案 第七章 73.ppt
- 新计算机网络实用技术(第二版) 雷建军 电子教案 第七章 74.ppt
- 新计算机网络实用技术(第二版) 雷建军 电子教案 第三章 32.ppt
- 新计算机网络实用技术(第二版) 雷建军 电子教案 第三章 33.ppt
- 新计算机网络实用技术(第二版) 雷建军 电子教案 第三章 34.ppt
- 新计算机网络实用技术(第二版) 雷建军 电子教案 第三章 35.ppt
- 新计算机网络实用技术(第二版) 雷建军 电子教案 第三章 36.ppt
- 新计算机网络实用技术(第二版) 雷建军 电子教案 第三章 37.ppt
- 新计算机网络实用技术(第二版) 雷建军 电子教案 第十二章 12.ppt
- 新C语言程序设计 chap10.ppt
- 新软件工程与实践 电子教案 刘竹林 软件工程与实践4 1.ppt
- 新软件工程与实践 电子教案 刘竹林 软件工程与实践4 2数据流图.ppt
- 新软件工程与实践 电子教案 刘竹林 软件工程与实践4 3.ppt
- 新软件工程与实践 电子教案 刘竹林 软件工程与实践5 1.ppt
- 新软件工程与实践 电子教案 刘竹林 软件工程与实践5 2.ppt
- 新软件工程与实践 电子教案 刘竹林 软件工程与实践6 1.ppt
- 新软件工程与实践 电子教案 刘竹林 软件工程与实践6 2.ppt
- 新软件工程与实践 电子教案 刘竹林 软件工程与实践7.ppt
- 新软件工程与实践 电子教案 刘竹林 软件工程与实践8 1.ppt
文档评论(0)