C++程序设计与实践:02-第2章 C++的数据类型

上传人:cl****1 文档编号:569766961 上传时间:2024-07-30 格式:PPT 页数:38 大小:962.50KB
返回 下载 相关 举报
C++程序设计与实践:02-第2章 C++的数据类型_第1页
第1页 / 共38页
C++程序设计与实践:02-第2章 C++的数据类型_第2页
第2页 / 共38页
C++程序设计与实践:02-第2章 C++的数据类型_第3页
第3页 / 共38页
C++程序设计与实践:02-第2章 C++的数据类型_第4页
第4页 / 共38页
C++程序设计与实践:02-第2章 C++的数据类型_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《C++程序设计与实践:02-第2章 C++的数据类型》由会员分享,可在线阅读,更多相关《C++程序设计与实践:02-第2章 C++的数据类型(38页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计与实践第二章C+的数据类型C C+程程序序设设计计与与实实践践上节课知识点回顾1.面向过程编程方法与面向对象编程方法的区别;l面向过程:自顶向下抽象,分解面向过程:自顶向下抽象,分解l面向对象:模拟现实世界的对象面向对象:模拟现实世界的对象2.面向对象的几个核心概念1.封装封装(抽象):类和对象(抽象):类和对象2.继承继承3.多态多态4.泛泛型编程型编程C C+程程序序设设计计与与实实践践继承与派生的例子C C+程程序序设设计计与与实实践践第二章C+的数据类型本章要点 C+C+的的数数据据类类型型。C+C+提提供供多多种种数数据据类类型型,以以适适应应不不同同程程序序的的需要。标

2、准需要。标准C+C+增加了增加了boolbool类型和引用类型。类型和引用类型。 标识符。标识符。标识符是程序的基本元素,用以表示一个程序分量。标识符是程序的基本元素,用以表示一个程序分量。 constconst说说明明符符。C+C+使使用用constconst说说明明符符来来定定义义常常量量。constconst还还可可以以修饰指针,使指针指向的单元或是指针本身成为常量。修饰指针,使指针指向的单元或是指针本身成为常量。 引引用用类类型型。引引用用是是一一个个单单元元的的别别名名。使使用用引引用用就就是是使使用用被被引引用用单单元元本本身身。引引用用可可以以单单独独使使用用,但但更更多多的的是

3、是作作为为函函数数参参数数和和函函数数的的返回值使用。返回值使用。 newnew和和deletedelete运运算算符符。使使用用这这两两个个运运算算符符可可以以更更好好地地进进行行动动态态内内存管理。存管理。 类类型型转转换换。除除了了C C风风格格的的类类型型转转换换方方式式外外,C+C+引引入入了了类类型型安安全全的显式类型转换机制的显式类型转换机制。C C+程程序序设设计计与与实实践践2.1C+数据类型概览C+拥有如下数据类型:简简单单类类型型:包包括括整整数数类类型型(integral)(integral)、浮浮点点类类型型(floatpoint)(floatpoint)、枚举类型、

4、枚举类型(enumeratione)(enumeratione)地地址址类类型型:包包括括引引用用类类型型(reference)(reference)、指指针针类类型型(pointer)(pointer)结结构构化化类类型型:包包括括数数组组类类型型(array)(array)、结结构构体体类类型型(structure)(structure)、联联合合体体类类型型(union)(union)、类类类类型型(class)(class)空类型空类型(void)(void)。这种类型只有空类型一种。这种类型只有空类型一种。C C+程程序序设设计计与与实实践践2.2标识符、变量和常量标识符(ident

5、ifier)是高级程序设计语言用到的词汇。程序员自定义的标识符通常用来代替字面(literal)值参与运算。标识符表示的数据有可变和不可变之分。不可变数据称为“常量(constant)”,而可变数据称为“变量(variable)”。C C+程程序序设设计计与与实实践践2.2标识符、变量和常量2.2.1标识符标识符是由字母A-Z,a-z和数字0-9混合而成的,另外可以加入下划线_。不过,所有的标识符必须以字母或者是下划线开头。C+保留了一些预先定义好的标识符,称为“关键字(key words) ”或“保留字(reservedwords)”C+的保留字参考教材附件的保留字参考教材附件1C C+程程

6、序序设设计计与与实实践践2.2标识符、变量和常量2.2.2常量字面常量(literalconstant)r*r*3.14命名常量(namedconstant)constfloatPI=3.14;提问:请大家说说命名常量的优点。C C+程程序序设设计计与与实实践践2.2标识符、变量和常量2.2.3变量变量定义的语法:类型名变量列表;变量的内存映像:intcounter;1001000x0013FF78counter变量的值变量的值内存单元的符号内存单元的符号名,即变量名名,即变量名整型单元的大小在整型单元的大小在3232位机上是位机上是4 4字节字节变量的变量的3232位地址,位地址,以第一个字

7、节的地以第一个字节的地址来表示址来表示C C+程程序序设设计计与与实实践践2.2标识符、变量和常量2.2.4变量的初始化复制初始化(copy-initialization):inti=1,j=i;charch=A;直接初始化(direct-initialization):inti(1),j(i);charch(A);完成习题完成习题2.3C C+程程序序设设计计与与实实践践2.3简单数据类型C+三种简单数据类型:整数类型、浮点类型、枚举类型。2.3.1整数类型C C+程程序序设设计计与与实实践践2.3.1整数类型字符类型字符常量单引号括起来的一个字符,如:单引号括起来的一个字符,如:a,D,?

8、,$a,D,?,$字符变量用来存放字符常量用来存放字符常量例:例:charc1,c2;charc1,c2;c1=a;c1=a;c2=A;c2=A;字符数据在内存中的存储形式以以ASCIIASCII码存储,占码存储,占1 1字节,用字节,用7 7个个二进制位二进制位C C+程程序序设设计计与与实实践践2.3.1整数类型字符数据的使用方法字符数据和整型数据之间可以运算。字符数据和整型数据之间可以运算。字符数据与整型数据可以互相赋值。字符数据与整型数据可以互相赋值。字符串常量例例:CHINA:CHINAaaaa所以:所以:charc;charc;c=a;c=a;C C+程程序序设设计计与与实实践践2

9、.3.1整数类型Bool类型布布尔尔类类型型的的表表达达范范围围非非常常有有限限,只只能能取取falsefalse(0 0)和和truetrue(非(非0 0)两两个值个值truetrue和和falsefalse是是字字面面常常量量标标识识符符,并并不不是是字字符串符串凡凡是是会会产产生生逻逻辑辑值值的的地地方方都都产产生生boolbool类类型型的的结果结果C C+程程序序设设计计与与实实践践2.3简单数据类型2.3.2浮点类型#includeusingnamespacestd;voidmain(void)constintPRICE=30;intnum,total;floatv,r,h;nu

10、m=10;total=num*PRICE;couttotalendl;r=2.5;h=3.2;v=3.14159*r*r*h;coutvendl;实型常量实型常量float 4float 4字节字节 3.43.410103838 7 7位有效数字位有效数字double 8double 8字节字节 1.71.71010308308 15 15位有效数字位有效数字long double 8 8字节字节 1.71.71010308308 15 15位有效数字位有效数字实型变量实型变量缺省为缺省为doubledouble型型后缀后缀 F F(或(或 f f)为为 floatfloat型型后缀后缀 L

11、L(或(或 l l)为为 long doublelong double型型C C+程程序序设设计计与与实实践践2.3简单数据类型2.3.3枚举类型枚举类型用来表示对象的状态。枚举类型的定义:enumenum TrafficLightRED,GREEN,AMBER;TrafficLightRED,GREEN,AMBER;TrafficLightTrafficLight是是类型名类型名;REDRED、GREENGREEN、AMBERAMBER是是枚枚举举常常量量,不不是是字符串,也不是整型常量字符串,也不是整型常量C C+程程序序设设计计与与实实践践枚举类型的例子enumTrafficLightR

12、ED,GREEN,AMBER;TrafficLightt1,t2;t1=RED;t2=t1+1;t2=TrafficLight(t1+1)完成习题完成习题2.4C C+程程序序设设计计与与实实践践2.4地址类型2.4.1指针类型变量的内存映像intcounter=100;100100counter0x0013FF790x0013FF780x0013FF7B0x0013FF7Acountercounter由由4 4个字个字节组成节组成每个字节都有各自唯一的地址每个字节都有各自唯一的地址变量变量countercounter的地址的地址C C+程程序序设设计计与与实实践践2.4地址类型1.指针的声明

13、指针: 用来用来表示内存地址,用于间接访问内存单元表示内存地址,用于间接访问内存单元指针变量: 用于用于存放地址的变量存放地址的变量指针变量的声明: 数据类型数据类型 * *标识符;标识符;C C+程程序序设设计计与与实实践践2.4地址类型1、指针的声明、指针的声明语法形式语法形式 存储类型存储类型 数据类型数据类型 *指针名初始地址指针名初始地址例:例: int *pa=&a;1存储类型存储类型是指指针变量本身的存储类型,是指指针变量本身的存储类型, 2数据类型数据类型是指该指针可以指向该数据类型的变量。是指该指针可以指向该数据类型的变量。 3*号表示后面的变量是指针变量。号表示后面的变量是

14、指针变量。4初始值初始值通常为某个变量名或为通常为某个变量名或为NULL。 如:如: int *p; /*p为指向整型变量的指针为指向整型变量的指针 */char *s; /*s 为指向整型字符型变量的指针为指向整型字符型变量的指针 */float *t ; /* t 为指向单精度浮点型变量的指针为指向单精度浮点型变量的指针 */C C+程程序序设设计计与与实实践践21指针变量的赋值指针变量的赋值指针变量一旦定义,必须采用赋值的方式将其与某个指针变量一旦定义,必须采用赋值的方式将其与某个变量实体相联系,才能使用。变量实体相联系,才能使用。 指针变量的赋值方式:指针变量的赋值方式: 指针变量名指

15、针变量名&普通变量名;普通变量名; 如:如:int i, j, *p,*q=&j; p=&i ;或:或:int i , *p; *p =i;两种形式都是将变量两种形式都是将变量i的地址赋给了指针的地址赋给了指针p。指针变量是用来保存某个变量的地址的,而地址是指针变量是用来保存某个变量的地址的,而地址是内存单元的编号,内存单元的编号, 因此指针变量的值的数据类型是因此指针变量的值的数据类型是无符号的整型。无符号的整型。 &的位置的位置1、&出现在变量声明语句中被声出现在变量声明语句中被声明变量左边表示声明的是引用明变量左边表示声明的是引用如:如:int &f;2、&给变量赋初值出现在等号右给变量

16、赋初值出现在等号右边或执行语句中表示取对象地址边或执行语句中表示取对象地址C C+程程序序设设计计与与实实践践2.4地址类型4.const作用于指针三种形式:1)constint*p;p p是变量,但指向了常量;是变量,但指向了常量;2)int*constp;p p是常量,但指向了变量;是常量,但指向了变量;3)constint*constp;常量指针指向了常量常量指针指向了常量完成习题完成习题2.5C C+程程序序设设计计与与实实践践2.4地址类型2.4.2引用类型1.引用的定义简而言之,引用就是对象的别名,即一个对象拥有多个名字。例如:inta=100;int&ra=a;a和ra是同一个单

17、元的不同名字!100100araC C+程程序序设设计计与与实实践践2.4地址类型2.引用的使用inta=1,b=2;int&ra=a;+ra的结果是2,与+a完全等效。而操作ra=b并非是使ra成为b的引用,而是将b的值赋给ra,也就是直接赋给a。提示:独立引用必须被初始化!C C+程程序序设设计计与与实实践践2.4地址类型指针和引用的对比inta=100,*p=&a,&ra=a;a的值是100;对象ra就是对象a,它的值是100;p的值是0x0013FF78,也就是a的地址;*p的值是对象a,它的值是100;0x0013FF780x0013FF781001000x0013FF78a(ra)

18、pC C+程程序序设设计计与与实实践践2.4地址类型3.指向常量的引用constdoubled1=1.0;constdouble&rd1=d1;/正确constdouble&rd2=1.0;/正确doublek=2.0;constdouble&rd3=k+1.0;/正确double&rd4=d1;/错误,非常量引用指向常量例2-2地址类型的使用(ex2-2.cpp)C C+程程序序设设计计与与实实践践2.5结构化类型5.指向数组的引用inta10;inta10;intint(&ra)(&ra)10=a;10=a;ra0=1;ra0=1;不能定义引用的数组不能定义引用的数组:int:int &r

19、a10=a;&ra10=a;错误错误6.数组的初始化inta3=1,2,3;inta3=1,2,3;intbintb=1,2,3;=1,2,3;/b/b的长度为的长度为3 3C C+程程序序设设计计与与实实践践2.5结构化类型2.5.3typedeftypedeftypedefintintINTINT; ;typedeftypedefdouble(*double(*DBLARRPTRDBLARRPTR)10;)10;/定定义义一一个个指指针针类类型型,该该类类型型的的指指针针指指向向一一个个长长度度为为的的doubledouble型型一一维维数组数组typedeftypedefint&int&

20、INTREFINTREF; ;/定义了整型引用定义了整型引用类型类型INTINTanIntanInt; ;DBLARRPTRDBLARRPTR dblArr;dblArr;/dblArr/dblArr是是个个数数组组,而而不不是是一一个个简单变量简单变量INTREFINTREFrara=anInt;=anInt;/ra/ra成为成为anIntanInt的的别名别名C C+程程序序设设计计与与实实践践2.6运算符和表达式2.6.1常用运算符和表达式元表达式:元表达式:字面常量、命名常量、变量字面常量、命名常量、变量赋值表达式赋值表达式( (左值、右值左值、右值) )算术表达式算术表达式关系表达式

21、关系表达式逻辑表达式逻辑表达式条件表达式条件表达式逗号表达式逗号表达式复合赋值表达式复合赋值表达式混合运算表达式混合运算表达式C C+程程序序设设计计与与实实践践2.6运算符和表达式2.6.1常用运算符和表达式赋值表达式(左值、右值)对象=表达式左值是赋值符号左边的值,常量不能作为左值;算术表达式基本算术运算符:+-*/%+-优先级与结合性:先乘除,后加减,同级自左至右C C+程程序序设设计计与与实实践践2.6运算符和表达式2.6.2几种特殊的C+运算符1.sizeofinta;sizeof(a);sizeof(int);提示:在不同的操作系统、编译环境、硬件平台上,sizeof运算符可能会有

22、得到不同的结果!C C+程程序序设设计计与与实实践践2.6运算符和表达式2.new和deletedouble*p,*q,*t;p=newdouble;q=newdouble(1.0);t=newdouble10;deletep;deletet;提示:new和delete应该成对出现!C C+程程序序设设计计与与实实践践2.6运算符和表达式3.类型强制转化运算符inta=1,*p=&a;inta=1,*p=&a;doubleb=2,*q;doubleb=2,*q;constintc=3;constintc=3;a=a=(int)(int)b;/Cb;/C风格风格a=a=int(int(b b)

23、);/C+;/C+风格风格a=a=static_cast(static_cast(b b) );/;/类型安全类型安全a=a=const_cast(const_cast(c c) );/;/类型安全类型安全q=q=reinterpret_cast(reinterpret_cast(p p) ); ; /危险危险dynamic_castdynamic_cast:将将基基类类指指针针/ /引引用用转转换换为为派派生生类指针类指针/ /引用,引用,以后再讲以后再讲C C+程程序序设设计计与与实实践践本章课程的小结1、C+基本数据类型2、标示符3、const说明符4、指针和引用5、new和delete

24、6、强制类型转换C C+程程序序设设计计与与实实践践课堂小练习1#include#includeusingnamespacestd;usingnamespacestd;voidmain()voidmain() inti=1;inti=1;coutni+n;coutni+n;couti+n;couti+n;cout+in;cout+in;cout-in;cout-in;couti-n;couti-n;coutcoutin;in; 输出结果:输出结果:C C+程程序序设设计计与与实实践践课堂小练习2主主函函数数中中初初始始化化一一个个矩矩阵阵并并将将每每个个元元素素都都输输出出,然然后后调调用用子子函函数数,分分别别计计算算每每一一行行的的元元素素之之和和,将将和和直直接接存存放放在在每每行行的的第第一一个个元元素素中中,返返回回主主函函数数之之后后输输出出各各行行元元素素的和。的和。C C+程程序序设设计计与与实实践践课堂练习题3设有一个int型数组a,有10个元素。用三种方法输出各元素:使用数组名和下标使用数组名和下标使用数组名和指针运算使用数组名和指针运算使用指针变量使用指针变量C C+程程序序设设计计与与实实践践课堂练习题4P35-习题2.3P41-习题2.7P48-习题2.10

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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