C++程序设计 丁亚涛 第2章 数据类型、运算符和表达式

上传人:E**** 文档编号:89389951 上传时间:2019-05-24 格式:PPT 页数:54 大小:550KB
返回 下载 相关 举报
C++程序设计 丁亚涛 第2章 数据类型、运算符和表达式_第1页
第1页 / 共54页
C++程序设计 丁亚涛 第2章 数据类型、运算符和表达式_第2页
第2页 / 共54页
C++程序设计 丁亚涛 第2章 数据类型、运算符和表达式_第3页
第3页 / 共54页
C++程序设计 丁亚涛 第2章 数据类型、运算符和表达式_第4页
第4页 / 共54页
C++程序设计 丁亚涛 第2章 数据类型、运算符和表达式_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《C++程序设计 丁亚涛 第2章 数据类型、运算符和表达式》由会员分享,可在线阅读,更多相关《C++程序设计 丁亚涛 第2章 数据类型、运算符和表达式(54页珍藏版)》请在金锄头文库上搜索。

1、2,数据类型、运算符和表达式,本章导读,标识符和关键字 数据类型概述 基本数据类型 常值和变量 运算符、表达式与语句 宏定义 其他运算符与语句 cin和cout,2.1 标识符和关键字,标识符是程序中用来给变量、函数、数组、类、命名空间起的名称。其命名规则如下: 由大小写英文字母、数字和下划线组成,而且不能以数字开头。 标识符区分大小写。 标识符的有效长度取决于编译系统,如Visual C+规定最长247个字符,Turbo C+规定最长32个字符。一般建议尽量简短。 标识符不能和关键字同名。,关键字,2.2 数据类型概述,2. 3 基本数据类型,说明: 1以上字节数是基于32位系统的,对于16

2、位系统,int、unsigned int、signed int为2字节。 2float类型数据有效数字为7位,double类型数据有效数字为15位,double类型数据有效数字为19位,其取值范围可能因为机器的不同有微弱的差别。 3Visual C+ 6.0中double和long double相同。,2. 3 基本数据类型,2. 3 基本数据类型,2.3.1 字符型 字符型数据指通常所说的字符,采用ASCII编码(见附录)来表示,存储时占用一个字节。字符数据的书写形式是用单引号括起的单个字符,例如用A、a、1、2分别表示A、B、1、2字符等,以区别于源程序中所用的字符。字符数据主要用于表示信

3、息,例如程序的输入和输出信息。 2.3.2 整型 整型用来描述整数,整型所占有的字节数与具体硬件有关,C+中整型分为短整型(short)、基本整型(int)、长整型(long int),每个整数类型根据有无符号,又分为有符号(signed)和无符号(unsigned)两种。,2. 3 基本数据类型,2.3.3 实型 实型用来描述实数,又称浮点型。根据表示实数的精度不同,C+的实型分为:单精度型float,双精度型double和long double。 实型也可以用科学记数法表示,例如:3.4E-38,其中3.4是尾数,-38是阶码。,2.3.4 布尔型 布尔型数据用来表示逻辑数据。布尔逻辑值只

4、包含两种:真(true)或假(false),true的值为整数1,false的值为整数0。 非布尔型数据在运算中可以和布尔型数据互换,0为false,非零值为true。,2.3.5 void型 void型为无值型,其数据长度为空,主要用于定义无返回值的函数和无类型指针。,2. 4 常量和变量,2.4.1 常量 在程序运行过程中,其值不能改变的量称为常量。 1字面常量 整型常量 .十进制表示:要求第1个数字不能为0(整数0除外),如:35,16等; .八进制表示:要求以0开头,由数字07组成,如:065,021等 .十六进制表示:要求以0X或0x开头,由数字09和字母af(或者AF)组成,如:0

5、x12,0x2F等。 实型常量 C+中实型常量有一般形式和指数形式两种表示方法。 .一般形式由数字09和小数点“.”组成,如:0.12,12.3,.03等; .指数形式由尾数,E或e和阶数组成,如:1E12,.3E9等。 实型数也可以加后缀f、d、和l(或F、D、和L)。 字符型常量 字符型常量是由单引号括起来的单个字符,2. 4 常量和变量,/Example ex2_1.cpp #include #include using namespace std; int main () cout“x07operationtsystemn“; cout101tA012; return 0; ,【例2.

6、1】演示转义字符。, 字符串常量 用双引号括起来的若干个字符称为字符串常量,如: “Hello world!“ 、“ 78“ 字符串常量在内存中顺序存放字符串中每个字符,并以转义字符“0”作为字符串的结束字符。因此,字符串占用的实际字节数为字符串的长度加1。字符常量和字符串常量的区别如下: “A“ /占两个字节,A和0,存放值为 0X 4100 A /占一个字节,A,存放值为 0X 41,2.4.1 常量,2.4.1 常量,2标识符常量 标示符常量是指有名字的常量。C+程序中标识符常量需要先定义后使用。 定义标识符常量有两种方式: l 使用const说明符。这样的标识符常量常被称为常变量,格式

7、为: const 类型名 常量名 = 值 例如: const double PI = 3.14159; 常变量必须在说明时进行初始化,而且初始化之后不允许再赋值。 l 另外一种方法是采用编译预处理命令。格式为: #define 常量名 值 例如: #define PI 3.14159 标识符常量必须先说明后引用,与字面常量相比,标示符常量增加了程序的可读性和可维护性。例如PI值如果用字面常量3.14159来处理,那么如果要修改其精度时,在程序中所有使用的3.14159的地方都需要修改,而标示符常量只要在说明处修改即可。,2.4.2 变 量,在程序运行过程中,其存储的值可以被改变的量,被称为变量

8、。变量必须通过标识符进行说明,称为变量名。变量名和内存单元地址存在映射关系,程序可以通过变量名寻址,从而访问其存储的数据。,2.4.2 变 量,1变量的说明 在C+中,变量说明的格式为: 存储类型 数据类型 变量名1,变量名2,变量名n; 其中括起来的部分为可选项,省略号为多次重复。如: int i,j,k; float x; long a,b,c; 变量具有4个基本要素:名字、类型、初值和作用域。,2.4.2 变 量,变量名为标识符的一种,符合标识符的命名规则。变量的名称尽可能简短并有一定的含义,例如:number、total等。 变量的数据类型可以是基本数据类型也可以是复杂数据类型,变量的

9、数据类型不仅规定了变量所占内存空间的大小,也规定了该变量上的相应操作。 变量的作用域是指变量在程序中有定义的范围,即该变量名在某段代码区域是否有意义。变量在说明时由存储类型来规定其作用域,从作用域的角度出发,可将变量分为全局变量和局部变量。在函数内或在块语句内定义的变量,只能在函数体内或块体内使用,所以被称为“局部变量”,这一部分内容将在后面函数章节中详细介绍。,2.4.2 变 量,给变量赋初值有两种方式: 变量说明时直接赋初值,称之为变量的初始化。如: int a=10; float x=3.0,y=1.0,z=2.0; 用赋值语句赋初值,如: float x; x10.0; 没有被赋值的变

10、量其初值取决于存储类型,静态存储的变量将自动为0,否则被随机初始化。 定义的变量可以被多次引用,其值可以被随时修改。,2.5 运算符、表达式与语句,2.5.1 运算符和表达式,在程序中对变量和常量进行运算或处理的符号称为运算符,参与运算的对象被称为操作数。,(1)运算符的功能; (2)运算符与操作对象即操作数 (包括常量、变量、函数调用等)的关系: 要求操作数的个数(单目、双目、三目); 要求操作数的类型(如求余运算符%要求操作数是整型); 结合方向(操作数到运算符)::左结合、右结合(单目、赋值类、条件运算符); (3)运算符的优先级; (4)运算结果的数据类型:不同类型数据运算将发生类型转

11、换。,1算术运算符及算术表达式 C+中的算术运算符共有7个,分别为: +(正)、-(负)、+(加)、-(减)、*(乘)、/(除)、%(取模,或称求余运算符),2关系运算符及关系表达式 C+中的关系运算符共有6个,分别为: (大于)、=(大于等于)、(小于)、=(小于等于)、=(等于)、!=(不等于),3逻辑运算符及逻辑表达式 C+中有3种逻辑运算符,分别为: !(逻辑非)、 &(逻辑与)、|(逻辑或),2.5.1 运算符和表达式,4位运算符及位运算表达式 C+提供的位运算符共有6个,分别为: (按位取反)、(右移)、&(按位与)、|(按位或)、(按位异或),2.5.1 运算符和表达式,5自增、

12、自减运算符(+、-) 自增、自减运算符的功能是使变量的值增1或减1,分别有以下两种格式: +k和k+、-k和k- +是自增运算符。+k或k+都是让变量k的值加1。 -是自减运算符。-k或k-都是让变量k的值减1。,/Example e2_2.cpp #include int main ( ) int a = 3 , b, c ; b = + a ; cout “a=“ a t “b=“ b endl ; c = a + ; cout “a=“ a t “c=“ c endl ; b = - a ; cout “a=“ a t “b=“ b endl ; c = a - ; cout “a=“

13、a t “c=“ c endl ; c = a + + b ; cout “a=“ a t “c=“ c endl ; return 0; ,【例2.2】自增与自减运算符,6赋值运算符及赋值表达式 赋值号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。如: a=3; 也可以将一个表达式的值赋给一个变量,如: r=x%y; 复合的赋值运算符 在C中,可以在赋值运算符之前加上其他运算符,构成复合赋值运算符。共有10种复合赋值运算符: += -= *= /= %= = &= = |= 前5种是算术运算符组成的复合赋值运算符,由算术运算符和复合赋值运算符结合在一起;后5种是位运算符组成的复合赋

14、值运算符,由位运算符和赋值运算符结合在一起。参加算术复合赋值运算的两个运算数,先进行算术运算,然后将其结果赋给第一个运算数。,2.5.1 运算符和表达式,7优先级和结合性,语句是C+程序中的基本单位,C+中的语句可以分为以下几种: 1表达式语句 表达式语句由表达式与分号组成,为最简单的语句,其语法格式为: 表达式; 2空语句 只有一个分号构成的语句被称为空语句。 3复合语句 由一对“”括起来的一组语句构成一个复合语句,复合语句在语法上起一个语句的作用,单个语句必须以“;”结束,而复合语句的结束符为“” 4流程控制语句 流程控制语句用来控制或改变程序的执行流程,主要有选择语句和循环语句。,2.5

15、.2 语句,2.6 类型转换,2.6.1类型转换概述,三种方式: 类型自动转换、赋值类型转换和强制类型转换,1.不同数据类型的差异,(1)floatdouble (2)(char,short,int,long)(float,double) (3)charshortintlong (4)signedunsigned,2.数据类型转换产生的6种效果,(1)数据类型提升与降格,(2)为保持数值不变,整型短数据转换成整型长数据时将产生符号位扩展与零扩展。,(3)最高位失去符号位功能(signed型转换成unsigned型)与变成符号位(unsigned型转换成signed型):长度不变,数值可能改变,

16、(4)丢失精度,(5)截去高位(溢出)产生数值的变化:发生在长的整型数据转换成较短类型的整型数据时。 (6)给实数赋值,float型只能接受7位有效数字,double型只能接受16位有效数字,多给无效。,2.6 数据类型转换,系统自动按运算顺序将低级的数据直接转换成高级的数据,以保证运算的精度,具体规则为: (1) float 在运算时自动转换成double; (2) char和short在运算时自动转换成整型数据int; (3) int和unsigned混合运算时,将整型数据转换成无符号整型数据,即是用补码参加运算,不会影响结果的正确性; (4) int或unsigned与long混合运算时,都转换成lon

展开阅读全文
相关资源
相关搜索

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

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