C++程序设计与实践 教学课件 ppt 作者 白忠建 chapter02 C++的数据类型

上传人:E**** 文档编号:89450387 上传时间:2019-05-25 格式:PPTX 页数:35 大小:445.98KB
返回 下载 相关 举报
C++程序设计与实践 教学课件 ppt 作者 白忠建 chapter02 C++的数据类型_第1页
第1页 / 共35页
C++程序设计与实践 教学课件 ppt 作者 白忠建 chapter02 C++的数据类型_第2页
第2页 / 共35页
C++程序设计与实践 教学课件 ppt 作者 白忠建 chapter02 C++的数据类型_第3页
第3页 / 共35页
C++程序设计与实践 教学课件 ppt 作者 白忠建 chapter02 C++的数据类型_第4页
第4页 / 共35页
C++程序设计与实践 教学课件 ppt 作者 白忠建 chapter02 C++的数据类型_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《C++程序设计与实践 教学课件 ppt 作者 白忠建 chapter02 C++的数据类型》由会员分享,可在线阅读,更多相关《C++程序设计与实践 教学课件 ppt 作者 白忠建 chapter02 C++的数据类型(35页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计与实践,第二章 C+的数据类型 电子科技大学信息与软件工程学院 白忠建,第二章 C+的数据类型,本章要点 C+的数据类型。C+提供多种数据类型,以适应不同程序的需要。标准C+增加了bool类型和引用类型。 标识符。标识符是程序的基本元素,用以表示一个程序分量。 const说明符。C+使用const说明符来定义常量。const还可以修饰指针,使指针指向的单元或是指针本身成为常量。 引用类型。引用是一个单元的别名。使用引用就是使用被引用单元本身。引用可以单独使用,但更多的是作为函数参数和函数的返回值使用。 new和delete运算符。使用这两个运算符可以更好地进行动态内存管理。 类型转

2、换。除了C风格的类型转换方式外,C+引入了类型安全的显式类型转换机制。,2.1 C+数据类型概览,C+拥有如下数据类型: 简单类型:包括整数类型(integral)、浮点类型(float point)、枚举类型(enumeratione) 地址类型:包括引用类型(reference)、指针类型(pointer) 结构化类型:包括数组类型(array)、结构体类型(structure)、联合体类型(union)、类类型(class) 空类型(void)。这种类型只有空类型一种。,2.2 标识符、变量和常量,标识符(identifier)是高级程序设计语言用到的词汇。 程序员自定义的标识符通常用来

3、代替字面(literal)值参与运算。 标识符表示的数据有可变和不可变之分。不可变数据称为“常量(constant)”,而可变数据称为“变量(variable) ”。,2.2 标识符、变量和常量,2.2.1 标识符 标识符是由字母A-Z,a-z和数字0-9混合而成的,另外可以加入下划线_。不过,所有的标识符必须以字母或者是下划线开头。 C+保留了一些预先定义好的标识符,称为“关键字(key words) ”或“保留字(reserved words) ”,2.2 标识符、变量和常量,2.2.2 常量 字面常量(literal constant) r * r * 3.14 命名常量(named c

4、onstant) const float PI = 3.14; 提问:请大家说说命名常量的优点。,2.2 标识符、变量和常量,2.2.3 变量 变量定义的语法:类型名 变量列表; 变量的内存映像: int counter;,变量的值,内存单元的符号名,即变量名,整型单元的大小在32位机上是4字节,变量的32位地址,以第一个字节的地址来表示,2.2 标识符、变量和常量,2.2.4 变量的初始化 复制初始化(copy-initialization): int i = 1, j = i; char ch = A; 直接初始化(direct-initialization): int i(1), j(i

5、); char ch(A); 直接初始化不是赋值!,2.3 简单数据类型,2.3.1 整数类型 bool类型 布尔类型的表达范围非常有限,只能取false和true两个值 true和false是字面常量标识符,并不是字符串 凡是会产生逻辑值的地方都产生bool类型的结果,2.3 简单数据类型,2.3.3 枚举类型 枚举类型用来表示对象的状态。 枚举类型的定义: enum TrafficLight RED, GREEN, AMBER ; TrafficLight是类型名; RED、GREEN、AMBER是枚举常量,不是字符串,也不是整型常量,2.4 地址类型,2.4.1 指针类型 变量的内存映像

6、 int counter = 100;,counter由4个字节组成,每个字节都有各自唯一的地址,变量counter的地址,2.4 地址类型,所谓指针就是对象的地址。 指针的定义 int counter = 100; int *p = 变量p保存了变量 counter的地址。,2.4 地址类型,指针的定义 int *p; 一个指针变量的类型可以看作有两部分组成: 首先它是个指针; 其次,该指针变量指向了一个特定基础类型的变量。,2.4 地址类型,2. 指针的使用 int *p, counter; p = 提问:请问表达式p和*p有何不同?,2.4 地址类型,3. 指针的运算 1)赋值 int

7、counter, t; int *p = ,p,q,2.4 地址类型,2)指针加/减一个整数 int counter, *p = p + 2 = ? 指针的加减法可能使结果(指针)指向未知的单元!,p,counter,0x0013FF78,0x0013FF7C,0x0013FF80,p + 2,?,2.4 地址类型,3)两个指针相减 q p = 0x0013FF80 0x0013FF78 = 8意思是:两个指针之间隔了多少个字节。,p,0x0013FF78,0x0013FF7C,0x0013FF80,q,2.4 地址类型,4)两个指针的比较 q p:true p = q:false,p,0x0

8、013FF78,0x0013FF7C,0x0013FF80,q,2.4 地址类型,4. const作用于指针 三种形式: 1)const int *p; p是变量,但指向了常量; 2)int * const p; p是常量,但指向了变量; 3)const int * const p; 常量指针指向了常量,2.4 地址类型,2.4.2 引用类型 引用的定义 简而言之,引用就是对象的别名,即一个对象拥有多个名字。例如: int a = 100; int a和ra是同一个单元 的不同名字!,ra,2.4 地址类型,2. 引用的使用 int a = 1, b = 2; int +ra的结果是2,与+a

9、完全等效。 而操作ra = b并非是使ra成为b的引用,而是将b的值赋给ra,也就是直接赋给a。 提示:独立引用必须被初始化!,2.4 地址类型,指针和引用的对比 int a = 100, *p = *p的值是对象a,它的值是100;,2.4 地址类型,3. 指向常量的引用 const double d1 = 1.0; const double /错误,非常量引用指向常量 例2-2 地址类型的使用(ex2-2.cpp),2.5 结构化类型,2.5.1 数组 1. 一维数组 int array100; 2. 二维数组 const int ROW = 3; const int COL = 5; i

10、nt arrROWCOL; 3. 字符数组(作为字符串使用) char name = K, e, n, 0 ; char name = “Ken”;,2.5 结构化类型,4. 指向数组的指针 1)指向数组元素的指针 int array10; int *pi = array; pi0 = 1; *(pi + 1) = 2;,1,2,2.5 结构化类型,4. 指向数组的指针 2)指向数组的指针 int array10; int (*pa)10; pa = ,2.5 结构化类型,5. 指向数组的引用 int a 10; int ( /e的第一维长度为3,e21的值为0,2.5 结构化类型,2.5.2

11、 结构体 结构体类型的声明 struct Employee /Employee是类型名 int ID; /工号 string name; /姓名 char gender; /性别 short DOB; /出生年份 int deptID; /工作部门号 ;,2.5 结构化类型,2. 结构体的使用:对象定义及初始化、指针和引用 Employee emp = 1,”ken”, m, 1988, 101, *p = ,2.5 结构化类型,2.5.3 typedef typedef int INT; typedef double (*DBLARRPTR)10; /定义一个指针类型,该类型的指针指向一个长

12、度为的double型一维数组 typedef int /ra成为anINT的别名,2.6 运算符和表达式,2.6.1 常用运算符和表达式 元表达式:字面常量、命名常量、变量 赋值表达式 算术表达式 关系表达式 逻辑表达式 条件表达式 逗号表达式 复合赋值表达式 混合运算表达式,2.6 运算符和表达式,C+表达式的形式化定义: 表达式 := 元表达式 表达式 := 前缀单目运算符 表达式 表达式 := 表达式 后缀单目运算符 表达式 := 表达式 运算符 表达式 表达式 := (表达式) 表达式 := 表达式 ? 表达式 : 表达式 任何一个C+表达式都会计算出一个结果!,2.6 运算符和表达式

13、,2.6.2 几种特殊的C+运算符 sizeof int a; sizeof(a); sizeof(int); 提示:在不同的操作系统、编译环境、硬件平台上,sizeof运算符可能会有得到不同的结果!,2.6 运算符和表达式,2. new和delete double * p, *q, *t; p = new double; q = new double(1.0); t = new double10; delete p; delete t; 提示:new和delete应该成对出现!,2.6 运算符和表达式,3. 类型强制转化运算符 int a = 1, *p = /危险 dynamic_cast以后再讲,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号