七章节结构与联合课件.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章结构与联合 结构 n 结构是一种用户自定义类型,它由多个 相同数据类型或不同数据类型的成员组 成 n 用户自定义类型中定义的每个变量称为 数据成员,每个函数称为函数成员或成 员函数 结构的定义 n 结构定义的格式: struct 结构类型名{ 成员定义1; 成员定义2; …… 成员定义n; }; 说明 1、结构类型的定义以保留字struct开始 2、结构类型名即定义的结构类型名称 3、左右花括号之间的部分称为结构体 4、结构类型中定义的成员可以是除本身结构类型 以外的任何已有类型,也可以是任何已有类型(包括 本身类型)的指针类型 n 例: struct Person{ char name[10]; bool sex; int age; float pay; }; 定义了一个结构类型,类型名称为Person,结 构类型中有四个不同数据类型的成员(注意: 定义的不是变量,是一种类型) 然后可用结构类型名作类型修饰符来定义结构 类型的变量 Person x,y; //定义了两个Person结构类型 的变量。 结构变量的定义 ——可采用三种格式 一、用结构类型名定义变量: 格式: 〖 struct 〗结构类型名变量名〖={初 始化数据}或同类型变量名〗, … n 结构类型名相当于类型修饰符 n 初始化数据是由每一个成员值构成的初始化数 据,也可以是同类型的变量名。 例: struct Arith{ char op; int a,b; }; //定义结构类型 Arith x,y; //定义两个Arith结构类型的变量x,y Arith z1={‘+’,10,xx},z2={‘*’,60},z3=z1; //定义变 量z1,z2并初始化 例: struct AAA{ char s[20]; int top; }a1={“Microsoft”,0},a2=a1,a3,*ap; //以上语句在定义AAA结构类型的同时定义了三个变量 a1,a2,a3及一个指针变量ap,且a1被初始化。 三、定义无名结构类型的同时定义变量 格式: struct { 成员定义1; 成员定义2; …… 成员定义n; }变量名〖 =初始化数据或同类型变量名〗 ,…; 这种格式没有类型名,因此必须在定义结构类型时定 义变量 struct BBB{ char name[10]; struct { int yy,mm,dd; }birth; }bx={“xxk”,{55,3,27}}; //结构类型BBB有两个成员, 一个字符型数组成员name和一个无名结构类型成员 birth (无名结构类型定义时定义了成员),定义BBB 结构类型的同时定义了该类型的变量bx,并初始化。 结构类型的声明 n 结构类型的声明即不完整定义 n 不完整定义是指只给出定义的类型保留字( 即struct)和类型标识符(即结构类型名) 而不给出结构体就结束定义 n 不完整定义只能作为指针类型使用并且必须 在稍后给出它的完整定义 n 例: struct BB; //BB类型的不完整定义,即类型声明 struct AA{ char a; BB *b; //定义BB结构类型的指针 }; struct BB{ //给出BB的完整定义 int b; AA a; //使用已定义的AA结构类型 }; 结构大小的计算 n 结构大小计算方法: n 所有成员占用空间大小的总和 n 例: struct AA{ int *a; }; //一个成员是整型指针,指针类型占用空间是4 字节,因此结构类型AA占4字节。 结构成员的访问操作 n 直接成员运算符(又称点运算符) 直接成员运算符: . 使用方法:结构变量.成员名 例:结构变量x中有成员a,b,c,则访问成员a的 方法: x.a 若x的成员b中又有成员变量t,则访问成员 变量t的方法: x.b.t vec[5].name表示结构数组vec中第5号元素 的成员变量name 结构成员的访问操作 n 间接成员运算符() 使用格式:结构指针变量指针所指向 的结构类型数据的一个成员名 例:指针p指向某结构数据,则p a是p 指针所指向的结构数据的成员变量a,也 可以等价地表示为(*p).a n 直接成员运算符与间接成员运算符的优 先级很高(仅次于括号) 结构数组保存和处理数据 已知人员记录的结构如下: struct Person{ //结构类型名为Person char name[10]; //姓名 bool isMale; //性别 int age; //年龄 float pay; //工资 }; 设计一程序,输入若干人员记录并保存 在一个结构数组中。 输入函数定义 (输入记录并保存在结构数组中

文档评论(0)

132****2812 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档