- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 七 章
自定义数据类型;第七章 自定义数据类型;自定义数据类型概述;必要性
需要把不同类型的数据结合成一个整体来描述某一对象
—— 对数组扩展(同类型的数据集合)
一个人:身份证号码、姓名、性别、电话、……
一辆车:类别、生产厂家、型号、颜色、……
一本书:书名、作者、出版日期、价格、库存、……
一张桌子:长、宽、高、类型、材质、价格、……
一台电脑:品牌、型号、价格、购买日期、……
一个公司:法人代表、注册资金、单位地址、……
一张菜单:菜名、价格、原材料、制作工艺、……
……;自定义类型
结构体必须先定义类型,后定义它的变量
int x ; 内存中存在 x ,不存在 int
类型“人”——没具体数值。世界上只有人类型的个体变量;定义结构体变量
struct student // 类型名 student
{
unsigned int ID ;
char name[20] ;
bool sex ;
date birthday; // 定义结构体变量
int score[35] ;
} stud1, stud2 ; // 定义2个结构体变量
student *sp; // 定义结构体指针
student st1[3]; // 定义结构体数组(一维)
student st2[3][4]; // 定义结构体数组(二维)
;无名结构体类型
struct // 省略类型名:无名结构体
{
unsigned int ID ;
char name[20] ;
bool sex ;
date birthday; // 定义结构体变量
int score[35] ;
} stud; // 这里必须定义结构体变量(?)
以后没法定义结构体变量了(没类型名)
临时使用,以后不再用 ;结构体变量的初始化
变量初始化:定义变量时赋值
student John = // 定义变量并初始化
{ 326, John, 0, {1992,5,15}, {85,90,80}};
student Joe = John; ;访问结构体变量的成员
整体赋值
Joe = John; // 赋值
cout John; // 错误
cin Joe; // 错误
访问每个成员
John.ID = 215;
John.birthday.year = 1990;
John.birthday.month = 8;
John.score[0]=95;
John.score[1]=85;
John.score[2]=75;;结构体数组;结构体数组初始化
遵循数组初始化规则
遵循结构体变量初始化规则
例如:
student stu[4] = //一维数组
{
101, 张三, 1, {1992,3,5}, {85,95,90},
102, 李四, 0, {1992,6,8}, {90,87,82},
103, 王五, 1, {1993,1,8}, {80,80,85},
104, 赵??, 0, {1992,9,2}, {75,80,90}
};;【例】统计程序:候选人得票数。
3人候选,1人胜选,10人投票。
数据输入
为简单计:初始化给定候选人和选票
数据存储
候选人:(string 姓名、int 得票数) 结构体数组[3]
选票:(string 得票人姓名) 数组[10]
算法设计
查找:在候选人中找选票填写的姓名
累加:该候选人得票数+1
结果输出
每位候选人得票数;结构体类型 struct;结构体指针
指向结构体变量的指针:student *p;
遵循变量的指针规则
;结构体数组指针
指向结构体数组的指针
遵循:数组的指针规则
复习:数组与指针
一维数组:student stu[10], *p = stu;
二维数组:student stu[3][4];
student *p1 = str[0]; // ... 等价表示
student (*p2)[4] = stu; // ... 等价表示
理解 p++ 含义
错:p = p + sizeof(student);
对:p = p + 1; // 理解 + 号含义
*** 二维以上结构体数组较少见:不好理解;结构体类型 struct;结构体类型 struct;C++ 对结构体的扩展;共用体 联合体
与结构体用法非常相似,略有差异后述
union data
您可能关注的文档
最近下载
- 《新媒体传播》课件.ppt VIP
- 2025年安全员c2考试试题库(答案+解析).docx
- GBT45001-2020SO45001:2018 职业健康安全管理体系要求及使用指南.pdf VIP
- 个人业绩相关信息采集表含政治表现、最满意、主要特点、不足.pdf VIP
- 部编版六年级上册道德与法治教案:感受生活中的法律知识.docx VIP
- 货运保险与货损理赔通道整合2025年应用前景.docx VIP
- 《飞机构造基础》课件——第一章 飞机结构.pptx VIP
- 中医治疗“慢脾风”医案37例.doc
- 小学科学新教科版二年级上册第一单元 造房子教案(共6课)(2025秋).docx VIP
- 2025年广西公需科目第二套答案.docx VIP
文档评论(0)