欢迎来到天天文库
浏览记录
ID:48761804
大小:211.50 KB
页数:26页
时间:2020-01-27
《第十一章 结构体与共用体.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十一章结构体与共用体※结构型变量、数组、指针的定义、初始化与使用※共用型变量、数组、指针的定义与使用※枚举型变量和常量的定义与使用※数据类型名的重新定义与使用【说明】学习本章的关键是:将“结构型”、“共用型”、“枚举型”当成一种新的数据类型,参照前面介绍的其他数据类型数据的处理思想,重点掌握:结构型、共用型、枚举型的定义方法结构型、共用型变量、数组、指针变量的定义与初始化方法;结构型、公用型成员的引用方法;枚举型数据的使用方法自定义数据类型名的方法及使用方法。111.1概述(结构型的定义)结构型=结构体型【作用】描述一组相关的、数据类型不相同(也可以是部分相同或全部相同
2、)的数据。例如,学生成绩表中有:【解决办法】用户自己定义一种结构类型(不同结构型含有的数据个数、类型可能不同)。【定义方法】struct结构型名{数据类型符1成员1名称;数据类型符2成员2名称;...数据类型符k成员k名称;};/*这儿的“分号”不能少!*/其中:结构型名称用户自己取的标识符;数据类型符前面介绍的各种“数据类型符”或已经定义过的一种结构型及后面介绍的共用型。成员k名称用户自己取的标识符(可以是变量、数组、指针等)。【功能】定义一种结构型,以后可将“struct结构型名”当成一种新的“数据类型符”。【注】(1)“struct结构型名”是一种“数据类型符”,它
3、是需要用户自己定义的。(2)定义某种结构型时,其成员的数据类型可以是已经定义过的某种结构型。(3)定义结构型的位置函数外:全局性定义,可以在后面所有函数内使用;函数内:局部性定义,只能在本函数体内使用。【例】学生结构型的定义。【以后“structstudent”就是一种“数据类型符”】structstudent/*学生结构型*/{longnumber;/*学号*/charname[10];/*姓名*/charsex;/*性别*/intage;/*年龄*/floatscore[6];/*6科成绩*/};学号姓名性别年龄成绩(实型数组)成绩1成绩2成绩3成绩4成绩5成绩6长整
4、型字符型数组字符型整型实型实型实型实型实型实型注意:结构型和数组型的区别211.2定义结构型变量的方法法一:先定义结构型法二:定义结构型同时法三:同法二后定义对应变量定义对应变量但无结构型名【格式】struct结构型名struct结构型名struct{...};{...}变量名,...;{...}变量名,...;...struct结构型名变量名,...;【注】1.定义结构型变量后,需要给其分配连续的内存单元,按顺序存放所有成员。分配的内存单元数目=∑每个成员占用的字节数2.定义结构型变量的位置函数外:全局变量,可以在后面所有函数中使用;函数内:局部变量,只能在本函数体内使
5、用。【说明】法一灵活,以后可以将“struct结构型名”作为一种数据类型符使用!法二简单,以后可以将“struct结构型名”作为一种数据类型符使用!法三不常用,因无结构型名以后不能定义这种类型的结构型变量、数组等。【例】structscorestructstudentvoidmain(){floatscore1;{longnumber;{structscores3;floatscore2;charname[10];structstudentstu1;}s1,s2;structscores_score;...;};};两个成员同类型,这是允许的!这个成员是结构型!【注】结构
6、型变量s1、s2、s3各分配4+4个字节,结构型变量stu1分配4+10+8个字节。成员1成员2成员3...成员k311.3结构型变量的引用结构型变量含有多个成员数据,不能直接引用这批数据,【格式】结构型变量名.成员名只能使用结构型变量的某个成员数据(和数组类似)其中:“.”称为“成员运算符”,双目中缀,前一个对象必须是结构(或共用)型变量,后一个运算对象必须是该结构(或共用)型的“成员名”。优先于*、&、++、--等运算符,结合性自左向右。【注】(1)成员是变量形式,则当成普通变量来使用;成员是数组形式,则当成普通数组来使用(数组名是地址、数组元素是变量);成员是指针形
7、式,则当成指针变量来使用;成员是另一种结构型,则当成结构型变量来使用(需要再次引用其成员)。(2)只能引用最内层的成员。【参看下面的例子】(3)结构型成员的地址:&结构型变量.成员名(成员是变量,表示该成员地址)结构型变量.成员名(成员是数组,表示数组首地址)结构型变量的地址:&结构型变量名。【和第一个成员地址值相同,但类型不同】【例】structs1正确引用:ab.a(实型变量)结构型变量地址、成员1地址{floata;ab.b(字符型数组首地址)成员2地址charb[10];ab.b[1](字符型数组元素)成员3地址};.
此文档下载收益归作者所有