Download presentation
Presentation is loading. Please wait.
1
第二章 数据类型与表达式 丘志杰 电子科技大学 计算机学院 软件学院
2
C++中的数据类型 整数类型 实数类型 基本数据类型 字符类型 空值类型 逻辑类型 数据类型 枚举类型 数组类型 C++中新增加 的数据类型
构造数据类型 指针类型 结构与联合类型 引用类型 抽象数据类型 类类型 2019/8/7
3
基本数据类型 字符类型:char、unsigned char 短整型:short、unsigned short
整型:int、unsigned int 长整型:long、unsigned long 单精度浮点型:float、unsigned float 双精度浮点型: double、unsigned double 布尔类型:bool 2019/8/7
4
变量 变量是存储数据的内存区域的名字或助记符。 C++的关键字是C++预定义的单词,也叫保留字,不能用作标识符,如变量名、函数名。
例如:if、while、public等 变量定义的方式:数据类型 变量名; 2019/8/7
5
数值 数值就是指直接参加运算的数,例如: 整型数:16、020、0x10 浮点型数:100、1.3e4 字符型数:’a’、’M’
字符串:”Hello” 布尔型数:true、false 2019/8/7
6
常量 常量是指在程序运行过程中,其值不能被改变的量。如:i=255; area=r*r*3.14; 在程序中直接使用数值有两个问题:
(1)可读性差 ; (2)可维护性差 ; 2019/8/7
7
符号常量 C++符号常量的定义形式如下: #define 符号常量名 数值 例如: #define MaxChar 255
#define PI 注意: 定义符号常量时不能用赋值符,#define PI=3.14是错误的。 由于define 是预处理指令,语句不能以分号结尾。 2019/8/7
8
常变量 C++为符号常量提供了一种新的定义方法,格式为: const 数据类型 符号常量名 = 数值; 例如:
const short MaxChar=255; const float PI=3.14; 注意:在声明时一定要赋初值,而且在程序中间不能改变其值。 const float PI; //错误 PI=3.1415;//错误 2019/8/7
9
用“define”和用“const” 定义符号常量的本质区别:
用“const”定义的符号常量在程序运行期间占据内存空间,只是用const来指明该内存空间的只读约束。 3.14 PI 2019/8/7
10
运算符与表达式 运算符是描述对数据进行的运算(操作)、体现数据之间运算关系的符号,运算符也叫操作符。
表达式是运算符与数据连接起来的表达运算的式子,表达式也称运算式。 优先级是指表达式中运算符运算的顺序。 结合性是指操作数左右两边运算符的优先级相同时,优先和哪个运算符结合起来,进行运算。 num1 op1 num2 op2 num (num1 op1 num2) op2 num3 左结合 num1 op1 num2 op2 num num1 op1 (num2 op2 num3) 右结合 2019/8/7
11
运算符 算术运算符:+、-、*、/、% 关系运算符:<、>、<=、>=、==、!= 逻辑运算符:&&、||、 !
位运算符:~、<<、>>、&、^、| 赋值运算符:= ++、--运算符 sizeof 取地址运算符:& 2019/8/7
12
表达式 算术表达式:a*b 赋值表达式:a=b; 逗号表达式:a=(a=3,a*5) ?表达式: a>0 ? a : -a
2019/8/7
13
类型转换 各种类型的高低顺序如下所示: 2019/8/7
14
隐式类型转换 隐式转换发生在如下场合: 值得注意的是,以上所有的转换都是在临时单元中进行的。 隐式类型转换可能会数据丢失。 混合运算 赋值
实参形参结合 函数返回值 值得注意的是,以上所有的转换都是在临时单元中进行的。 隐式类型转换可能会数据丢失。 某单元 临时单元 拷贝并转换 参与运算 2019/8/7
15
强制类型转换 旧式的C语言风格的强制类型转换的格式如下: 类型说明符 (表达式) 或 (类型说明符) 表达式
类型说明符 (表达式) 或 (类型说明符) 表达式 例如:int(a+b) //将a+b运算的结果转换成int型 5/float(3) //将3转换成float型 int a;float x=8.57; a=(int)x; //取整数部分,舍弃小数部分 结果a=8,x仍为float型,其值仍为8.57。 采用强制类型转换将高类型数据转换为低类型数据时,数据精度可能会受到损失。 2019/8/7
16
标准C++强制类型转换: static_cast <类型说明符> (表达式)
reinterpret_cast<类型说明符> (表达式) const_cast <类型说明符> (表达式) dynamic_cast <类型说明符> (表达式) static_cast用于一般表达式的类型转换。 例如: int a;float x=8.57; a=static_cast <int> (x); //将变量x的类型转换成int型 reinterpret_cast用于非标准的指针数据类型转换,如将void *转换成char *。 const_cast将const表达式转换成非常量类型, 常用于将限制const成员函数的const定义解除。 dynamic_cast用于进行对象指针的类型转换。 注意: 进行类型转换,只是将值进行了转换,原变量的类型不变。 2019/8/7
Similar presentations