网站大量收购独家精品文档,联系QQ:2885784924

七章节结构与联合培训课件.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 结构与联合;结构;结构的定义;例: struct Person{ char name[10]; bool sex; int age; float pay; }; 定义了一个结构类型,类型名称为Person,结构类型中有四个不同数据类型的成员(注意:定义的不是变量,是一种类型) 然后可用结构类型名作类型修饰符来定义结构类型的变量 Person x,y; //定义了两个Person结构类型的变量。;结构变量的定义 ——可采用三种格式;例: struct Arith{ char op; int a,b; }; //定义结构类型 Arith x,y; //定义两个Arith结构类型的变量x,y Arith z1={‘+’,10,xx},z2={‘*’,60},z3=z1; //定义变量z1,z2并初始化 ;二、定义结构类型的同时定义变量 格式: struct 结构类型名{ 成员定义1; 成员定义2; …… 成员定义n; }变量名〖=初始化数据或同类型变量名〗,…;;例: 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,并初始化。;结构类型的声明;例: struct BB; //BB类型的不完整定义,即类型声明 struct AA{ char a; BB *b; //定义BB结构类型的指针 }; struct BB{ //给出BB的完整定义 int b; AA a; //使用已定义的AA结构类型 };;结构大小的计算;例: struct BB{ int a; int b; }; //成员a,b是整型,因此结构类型BB占8字节 struct CC{ char *data; BB s; CC *link; }; //成员data占4字节,s是BB结构类型,占8字节,link是指向自身结构类型的指针,占4字节,因此结构类型CC占16字节;结构成员的访问操作;结构成员的访问操作;结构变量的赋值;结构数组保??和处理数据;输入函数定义 (输入记录并保存在结构数组中,预处理略) Person a[10]; //定义全局结构数组a,存放人员记录 void input(int n){ cout“从键盘上输入具有Person结构的”n“个记 录”endl; int i,k; Person x; //定义局部结构变量x,用于输入的变量 for(i=0;in;i++){ cinx.name; //输入一个人的姓名(字符串) cink; //输入一个人的性别(1表示男,0表示女) x.isMale=(k!=0); //赋值时0转换成false,1转换成true cinx.agex.pay; //输入年龄和工资 a[i]=x; //将结构变量x赋给a[i],结构赋值 } };输出函数定义 void input(int n){ cout“从键盘上输入具有Person结构的”n“个记 录”endl; for(int i=0;in;i++){ couta[i].name‘’; //显示姓名 cout(a[i].isMale? “男”: “女”)‘’; //显示性别 couta[i].age‘’a[i].payendl; //显示年龄和工资 } };主函数 void main( ){ int n; cout“请输入一个正整数(1=n=10):” cinn; input(n); output(n); } };例7.2:从一个保存人员记录的结构数组中查找工资(pay域)

文档评论(0)

yuzongjuan7808 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档