- 14
- 0
- 约3.19万字
- 约 35页
- 2018-03-27 发布于河南
- 举报
C++程序设计教程第7章.pdf
第7章 构造数据类型 教学提示:前面几章我们学习过的所有类型,如整型、字符型、浮点型、逻辑型以及
相应的指针类型、引用类型等,它们都是 C++ 系统内预定义的数据类型,系统为它们规定
了相应的取值范围和操作,在程序中可直接使用。为了求解较复杂问题,C++语言提供了
一种自定义的数据类型机制,用这种机制就可以定义较复杂的数据类型,如数组、结构型、
共用型、枚举型和类等。由于这些复杂数据类型的元素或成员的数据类型仍然是基本数据
类型,因此这些自定义的数据类型 除枚举类型外 又称为“构造数据类型”。 本章学习结构型 struct 、共用型 union 、枚举型 enum 和类型定义语句 typedef 等。 有
关类类型的定义和使用,将在后续章节介绍。 学习目标: 掌握结构型的定义、结构型变量的定义和使用; 掌握共用型的定义、共用型变量的定义和使用; 掌握枚举型的定义、枚举型变量的定义和使用; 理解 typedef 作用,了解 typedef 的使用方法; 能综合运用上述方法和技术进行较复杂的程序设计。 7.1 结 构 体 前面章节我们详细讨论了数组。数组是一组有序数据的集合,数组中的每一个元素都
属于同一种数据类型。用一个统一的数组名和下标来唯一地确定数组中的元素。实际生活
中的事物,往往具有多种属性,如“学生”这个实体,它有“学号”、“姓名”、“成绩”、 “平均成绩”等属性。一般来说这些属性是一些不同类型的量,例如: 学号 //可以是长整型量或字符型的量 姓名 //是字符型的量 成绩、平均成绩 //是实型量等 因此,要描述“学生”这种实体,数组是无能为力的,必须使用另外的数据类型,这
就是结构型。 C++语言中,允许用户将不同类型的数据组合成一个有机的整体,这些数据互相联系,
这种数据结构称为结构体 structure 。 用数组解决学生成绩统计,需要定义3 个数组,“学号”用长整型数组,“姓名”用
二维字符数组,各门成绩用float 型数组。数组的访问需要对逐个元素分别访问,不能对某
行整体访问;进行成绩排序时,需要将一行中的元素分别进行交换。使用结构体组织数据,
可以实现对整行的访问,大大简化了编程。 ·178 · C++程序设计 7.1.1 结构体类型的定义 C++用结构体描述“学生”这个抽象实体如下: struct Student //定义名为Student 学生 的结构体类型 //以下是结构型的成员: long num; //学号,长整型 char name[10]; //姓名,字符型数组 float score[3]; //数学,英语,计算机成绩,实型 float ave; //平均成绩,实型 ; //注意最后的分号不可少 其中,struct 是关键字,表示将要进行结构体的定义;Student 是用户自己定义的结构
体类型标识符,即该结构体类型名;大括弧中是该结构型的成员的声明;最后以“;”结
束结构体类型的定义。 结构体类型定义的一般形式为: struct 结构体类型名 类型标识符 1 成员1; 类型标识符2 成员2; … 类型标识符n 成员n; ; 请注意以下几点说明。 1 “结构体类型名”用作结构体类型的标志。 2 大括弧内是该结构体中的各个成员,由它们组成一个结构体;在结构体内对各成
员都应进行类型声明。 3 “成员列表”也称为域表。每个成员也称为结构体中的一个域,成员的命名规则与
变量名一样。 4 每个成员名前的类型标识符可以为已经定义了的任意类型,当然可以是结构体类
型标识符,即结构体成员也可以是另一个结构体变量。例如: struct Date //定义日期结构型 int day; char month[10]; int year; ; struct Student1 //定义学生结构型,其中有日期结构型的成员 long num; char name[10]; bool sex; struct Date birthday; //birthday 为date 结构型变量 float score; //同类型变量可以一起定义 ; 5 在程序中可以定义多个结构体类型,不同结构体类型用不同的结构体名来区分。
注意:① 此处只是构造出一个新的类型,并没有定义该类型的变量,因此在内存中并没有 ·178 · 第 7 章 构造数据类型 ·179 · 开辟任何存储空间。 ② 成员也可以是指向本结构体类型的指针变量,例如: struct Studentp int num; char name[12]; float score; struct student *next; ; 其中,next 是指向本结构体类型的指针,占 4 个字节
您可能关注的文档
- AAN036e_Paints_and_Coatings.pdf
- AA_P-DP_1624_1.0_Process_Data_Sheet_--_Feed_Gas_Cooler__unshifted_.pdf
- ABAQUS connector用法.pdf
- ABAQUS_connector用法.pdf
- ABB Control Builder V2_1.pdf
- ABB(S4C IRB) 机器人操作培训说明书 完整版 .doc
- abba直线导轨样本.pdf
- abb质量流量计FCM2000+chinese+operate+manual.pdf
- Abiotic stress-inducible receptor-like kinases negatively control ABA signaling in Arabidopsis.pdf
- AC-DC医疗电源的选用标准与典型应用方案.docx
- 2026江西南昌市市场监督管理执法稽查局招聘仓库管理人员1人备考题库及一套参考答案详解.docx
- 2026江苏省常州市体育运动学校招聘排球教练1人备考题库及完整答案详解.docx
- 2026江苏苏州张家港农商银行寒假实习招募备考题库及完整答案详解一套.docx
- 2026浙江台州银行1月份招聘备考题库及完整答案详解一套.docx
- 2026江苏扬州市侨城社区(筹)公益性岗位招聘1人备考题库及完整答案详解.docx
- 2026广西桂林市象山区政府招聘编外聘用人员2人备考题库精编答案详解.docx
- 2026江苏南京江北新区退役军人服务中心招聘编外人员6人备考题库及参考答案详解1套.docx
- 2026广西玉林市博白县公安局第一次招聘警务辅助人员29人备考题库及一套完整答案详解.docx
- 2026广西玉林市福绵区樟木供销合作社招聘财务人员2人备考题库精编答案详解.docx
- 2026春季梦想靠岸招商银行西宁分行校园招聘备考题库及答案详解(新).docx
最近下载
- 地下车位租赁协议书通用版.docx VIP
- nsr621rf-d电容器保护测控装置技术使用说明书.pdf VIP
- 19G518-3_门式刚架轻型房屋_钢结构_有吊车_.docx VIP
- 2025公安大学警务硕士真题及答案.docx VIP
- 火电厂烟气脱硫工程调整试运及质量验收评定规程.PDF VIP
- 帝人芳纶应用介绍.doc VIP
- 《黄酒酿造工艺》课件.ppt VIP
- 深度解析(2026)《JBT 8521.2-2025编织吊索 安全性 第2部分:一般用途合成纤维圆形吊装带》:构筑新时代工业安全的核心支柱与前瞻指南.pptx VIP
- 2026房东直租房屋租赁合同.docx VIP
- V03英国深海控制器DSE5220模块操作說明書.pdf
原创力文档

文档评论(0)