c++8 结构与联合.pptVIP

  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文档。上传文档
查看更多
结构的概念 用 int、double 等简单数据类型,只能从一个特定的角度来描述事物,如用 int 型数据来描述一个人的年龄,用 double 型数据描述一个人的工资等; 结构是一种复合数据类型,它把若干数据(简单的或复合的)组织在一起,从而可综合地、多角度地描述事物; 结构的概念 结构示例: struct Person { ??char name[10]; //姓名 ??bool sex; //性别 ??int age; //年龄 ??float pay; //工资 }; 结构的概念 组成结构的数据称为结构的成员(或数据成员) 在某些场合,结构数据也称为记录,其成员也称为域、数据项或字段等; 通常使用结构是只定义它的数据成员,不定义它的成员函数。 结构的定义 —— 定义格式: struct 结构类型名 { ? ? 成员定义1 ? ? 成员定义2 ????? ??? ???????????????? ? ? 成员定义n }; 结构的定义 格式中的 成员定义 与变量定义的格式基本相同,只是不允许初始化,如: 结构的定义 由于不能初始化,结构中无法定义引用成员 结构中的可以有结构成员,如: struct Person{…}; struct CLASS{ //班级 char class_id[10]; //班号 Person monitor; //班长 int num_of_student;//人数 }; 结构的定义 结构中可以包含指向另一结构数据的指针,例如: struct AA{…}; struct BB{ int b; AA *pAA; }; 结构的定义 结构中甚至可以包含指向自身的的指针,例如: struct F{ double data; F *next; }; 结构的定义 如果两个结构都包含有指向对方的指针,则其中一个结构必须提前声明,例如: struct BB{…;AA *pa;…}; struct AA{…;BB *pb;…}; 结构的定义 如果两个结构都包含有指向对方的指针,则其中一个结构必须提前声明,例如: struct BB{…;AA *pa;…}; struct AA{…;BB *pb;…}; 结构体变量的定义、初始化 定义格式: 【struct】结构类型名 变量名 【={初始化数据}│同类型变量名】, ? ; 举例: struct Arith{ ??????char op; ??????int a,b; }; 结构体变量的定义、初始化 struct Arith x,y; Arith z1={+,10,xx}, z2={*,60}, z3=z1; Arith *d=z1; Arith a[4]={ {+,3,7},{?,10,5}, {*,6,4},{/,8,5} }; Arith *b[]={z1,z2,a+2,a[3]}; 结构体变量的定义、初始化 可以在定义结构类型的同时定义结构变量,例如: struct AAA { ??????char s[20]; ??????int top; } a1={MicroSoft,0}, a2=a1, a3, *ap; 注意: 如无特别必要,还是分开定义进行为好。 结构体变量的定义、初始化 结构类型的定义和结构变量的定义同时进行时,结构类型可以是无名的(常用于定义结构中的结构成员),例如: struct BBB { ??????char name[10]; ??????struct{ ????????int yy,mm,dd; ??????} birth; }; 结构体变量的定义、初始化 new运算符创建动态结构变量或动态结构数组,如: Airth *p = new Arith; Airth *q = new Arith [n]; delete删除占用的空间 delete p; delete [ ]q; 结构体变量的定义、初始化 用初始化数据对结构变量初始化,是将每个成员值依次复制到变量的相应域中。 当仅对结构变量的部分成员初始化时,未被初始化的成员由系统自动置为0。 全局域和文件域结构变量和static局部结构变量未被初始化时,每个成员被系统自动赋为0。 非静态的局部结构变量未被初始化时,它的每个成员的值是随意的,即不确定。 结构数据所占用的空间 结构数据所占空间的大小,理论上等于各成员大小之和。例如: sizeof(Arith) 应等于 sizeof(op) +sizeof(a) +si

文档评论(0)

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

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

1亿VIP精品文档

相关文档