C++大学基础教程 第7章 其它自定义数据类型 北京科技大学 信息基础科学系.

Slides:



Advertisements
Similar presentations
目 录  第 1 章 C++ 概述  第 2 章 数据类型、运算符和表达式  第 3 章 简单的输入 / 输出  第 4 章 C++ 的流程控制  第 5 章 函数  第 6 章 编译预处理  第 7 章 数组  第 8 章 结构体、共同体和枚举类型  第 9 章 指针和引用  第.
Advertisements

勇闖「卡勒居」 學長姐經驗分享(文組).
程序设计导论 ——第15讲 结构与结构数组.
程序设计导论 结构与结构数组.
高三學長姐繁星及個人申請上榜 經驗分享(理組)
第七章 指针 计算机公共教学部.
二级指针与二维数组.
大学实用教程 C语言.
第6章 指针 6.1 指针的概念 6.2 变量与指针 6.3 数组与指针 6.4 字符串与指针 6.5 函数与指针 6.6 返回指针值的函数
6.4 字符串与指针 1. 用字符数组存放一个字符串.
趙靖宇時間-專治你的Monday blue
第11章 结构体与共用体 结构体 共用体 枚举类型 用typedef定义类型 Tc工具. 江南大学控制科学与工程研究中心
C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.
第九章 结构体 主讲教师 :贾月乐 电话:
第10章 结构体与共用体 概述 结构体 共用体 枚举类型.
7.1 结构体类型 7.2 共用体 7.3 枚举类型 7.4 用typedef声明类型
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第 十 章 指 针.
结构体和共用体 2 梁春燕 华电信息管理教研室.
第9章 用户自己建立数据类型 9.1 定义和使用结构体变量 9.2 使用结构体数组 9.3 结构体指针 9.4 用指针处理链表
程序设计专题 第2讲 - 结构 刘新国.
自定义数据类型 潘荣江 山东大学计算机科学与技术学院
程序设计基础.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.
辅导课程六.
第7讲 结构体与共用体 7.1 结构体 7.2 共用体.
二维数组的指针表示 与复杂的指针例子 专题研讨课之三.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第2章 基本数据类型 王德俊 上海交通大学继续教育学院.
第8章 结 构 体.
第8章 结构体、共用体和枚举类型 教学目的: 通过本章的学习,要求了解结构型、链表、共用型和枚举型数据的特点,熟练掌握结构型的定义方法,结构型变量、数组、指针变量的定义、初始化和成员的引用方法;掌握简单链表的基本操作原理和应用;掌握共用型和枚举型的定义方法及对应变量的定义与引用;掌握用户自定义类型的定义和使用。学习本章内容可以为今后学习数据结构中的链表创建和使用打下基础。
第11章 结构体和共用体.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第二章 Java语言基础.
第七章 结构体、共同体和枚举类型.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言复习3----结构体.
C语言程序设计.
第十章 用户自定义数据类型 目录 学生信息管理系统的开发 结构体数据类型的概述 结构体变量的使用 结构体数组
OOP6 結構Struct 黃兆武.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
第9章 用户自己建立数据类型 C语言提供了一些系统已定义好的数据类型,如int,float,char,用户可以用它们定义变量。
Java變數 2014/6/24.
2011 邀请中国姐妹学校韩国语研修团项目 申请时间: ~5月 27日 / 项目地点: 汉阳大学 安山校区 / 项目时间: (星期日) ~ 7.22(星期五) 费用: 100万元(韩币/人 (包含项目 - 学费, 教材费, 宿舍费, 接机费用及所有文化体验活动项目费用)
第九章 用户建立的数据类型.
第6讲 指针与引用 6.1 指针 6.2 引用.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
第4章 Excel电子表格制作软件 4.4 函数(一).
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
第九节 赋值运算符和赋值表达式.
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
结构体与共用体 结构体 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体 自定义数据类型 结构体类型定义
本节内容 结构体.
本节内容 指针类型的使用 视频提供:昆山爱达人信息技术有限公司.
Thanksgiving Day 4-1.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
基本知识 数据类型、变量、常量、运算符.
第14讲 结构体和共用体 计算机与通信工程学院.
第八章 结构体和共用体 结构体类型和结构体变量 结构体数组 结构体指针变量 共用体.
第二章 数据类型与表达式 丘志杰 电子科技大学 计算机学院 软件学院.
<编程达人入门课程> 本节内容 有符号数与无符号数 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
Chap 9 结构 9.1 构建学生信息库 9.2 计算学生平均成绩 9.3 学生成绩排序 9.4 修改学生成绩.
本节内容 this指针 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
安排座位.
第7章 地址和指针 7.1 地址和指针的概念 7.2 指针变量的定义和指针变量的基类型 7.3 给指针变量赋值 7.4 对指针变量的操作
Presentation transcript:

C++大学基础教程 第7章 其它自定义数据类型 北京科技大学 信息基础科学系

C++语言不仅有丰富的基本数据类型,而且允许用户自己定义数据类型。

第7章 C++其他自定义数据类型 7.1 枚举型数据类型 7.2 结构型数据类型 7.3 联合型数据类型

7.1 枚举类型

7.1 枚举类型 枚举型数据类型(简称枚举类型) 用户可以自己定义一种数据类型,把这种数据类型的变量的可能值一一列举出来,然后就可以使用这种数据类型来定义变量了。这种新的数据类型称为枚举类型,声明形式为: enum 新的数据类型名称 {变量值列表};

7.1 枚举类型 例如: enum weekday {sun, mon, tue, wed, thu, fri, sat}; 新的数据类型 枚举元素或枚举常量

7.1 枚举类型 定义一个weekday类型的变量: weekday day; day = sat;

7.1 枚举类型 使用枚举类型时要注意: 在类型定义之后,对枚举元素按常量处理,不能对它们赋值。 枚举元素具有默认值,它们依次为:0,1,2,……。 也可以在类型声明时另行指定枚举元素的值。 枚举值可以进行关系运算。 整数值不能直接赋给枚举变量;如需要将整数值赋给枚举变量,应进行强制类型转换

7.1 枚举类型 枚举常量在机器内部仍然是用整型数来存取 在定义变量时要给变量分配存储空间,那么定义某个枚举类型的变量时,分配几个字节的内存空间呢? (前面我们看到,枚举元素的默认值都是整数,可以给枚举元素指定值,也用整数,所以说,在计算机内部处理时,是把枚举类型按整型(int)对待的。)

7.2 结构类型

7.2 结构类型 结构型数据类型(简称结构类型) 把现实生活中意义密切相关的一组数据组合成一个整体,即由各种数据类型(可以是基本数据类型或已声明的自定义数据类型)的数据组成一个集合,称为结构类型。

7.2 结构类型 结构的声明形式如下: struct 结构类型名 { 数据类型说明符1 成员名1; 数据类型说明符2 成员名2; ┇ 数据类型说明符n 成员名n; };

7.2 结构类型 例如: struct student { long num; //学号 char name[20]; //姓名 int age; //年龄 float score; //成绩 };

7.2 结构类型 定义student类型的变量: student s1; 结构类型的变量所占的存储空间是结构中所有成员所占空间的总和

7.2 结构类型 给结构变量赋初值,可以在变量定义时同时设置初始值: student s2={20041118,”Li Li”,18,90}; 给结构变量赋值,也可以单独给各个成员赋值。例如: s1.num=20041118; s1.name=”Li Li”;

7.2 结构类型 属于同一结构类型的各个变量之间可以相互赋值,这一点和数组不同,C++规定,不能直接进行数组名的赋值,因为数组名是一个常量,而结构类型的变量可以赋值。 不同结构的变量不允许相互赋值,即使这两个变量可能具有同样的成员。

结构类型与指针 定义变量时,我们可以定义指向int型的指针变量,类似的,可以有指向新定义的结构型数据类型的指针变量。 可以将结构变量的地址赋给结构指针,使结构指针的指向确定。使用取地址“&”操作,得到结构变量的地址,这个地址就是结构的第一个成员的地址。 用结构指针访问结构成员时,用箭头操作符代替原来的点操作符。

结构类型与数组 声明一个结构类型后,就可以用来组成更复杂的数据类型。可以象定义基本数据类型的数组一样定义结构类型的数组,称为结构数组。 结构数组的每个元素都是该结构类型的变量。

结构类型与函数 用结构变量作为函数参数,属于按值传递,这时结构变量中所有成员的值都将被一一复制到形参中。 用结构变量作为函数参数,也可以按引用传递,这时仅仅把结构变量的地址传递给形参,而不用把结构变量的成员值一一复制。

结构类型与函数 一个函数的参数可以是某个结构类型,同样道理,函数的返回值也可以是某个结构类型。 以结构变量作为函数的返回值,到主函数中需要把结构值复制给主函数中的结构变量,当结构成员很多时,同样存在执行效率低的问题。因此,也可以用结构的引用(或指针)作为返回值。但是要注意:不能返回一个局部结构变量的引用或指针。

7.3 联合类型

7.3 联合类型 有时需要使几个不同类型的变量共用同一组内存单元,这时可以声明一个联合型数据类型,语法形式为: union 联合类型名 { 数据类型说明符1 成员名1; 数据类型说明符2 成员名2; ┇ 数据类型说明符n 成员名n; };

7.3 联合类型 例如: union uarea { char c-data; short s-data; long l-data; }ux; 新定义的联合类型 三个成员,它们共用内存空间 uarea类型的变量ux

7.3 联合类型 使用联合型变量时注意: 同一段内存用来存放几种不同类型的成员,但在某一时刻只能存放其中一种,而不是同时存放几种。 联合变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。 联合变量的地址和它的各个成员的地址都是同一地址。 不能对联合变量名赋值,也不能在定义时初始化。 不能用联合变量作为函数参数或返回值。

作业 第7章习题:9