




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++程序设计与实践第二章C++的数据类型上节课知识点回顾面向过程编程方法与面向对象编程方法的区别;面向过程:自顶向下抽象,分解面向对象:模拟现实世界的对象面向对象的几个核心概念封装(抽象):类和对象继承多态泛型编程继承与派生的例子第二章C++的数据类型本章要点C++的数据类型。C++提供多种数据类型,以适应不同程序的需要。标准C++增加了bool类型和引用类型。标识符。标识符是程序的基本元素,用以表示一个程序分量。const说明符。C++使用const说明符来定义常量。const还可以修饰指针,使指针指向的单元或是指针本身成为常量。引用类型。引用是一个单元的别名。使用引用就是使用被引用单元本身。引用可以单独使用,但更多的是作为函数参数和函数的返回值使用。new和delete运算符。使用这两个运算符可以更好地进行动态内存管理。类型转换。除了C风格的类型转换方式外,C++引入了类型安全的显式类型转换机制。2.1C++数据类型概览C++拥有如下数据类型:简单类型:包括整数类型(integral)、浮点类型(floatpoint)、枚举类型(enumeratione)地址类型:包括引用类型(reference)、指针类型(pointer)结构化类型:包括数组类型(array)、结构体类型(structure)、联合体类型(union)、类类型(class)空类型(void)。这种类型只有空类型一种。2.2标识符、变量和常量标识符(identifier)是高级程序设计语言用到的词汇。程序员自定义的标识符通常用来代替字面(literal)值参与运算。标识符表示的数据有可变和不可变之分。不可变数据称为“常量(constant)”,而可变数据称为“变量(variable)”。2.2标识符、变量和常量2.2.1标识符标识符是由字母A-Z,a-z和数字0-9混合而成的,另外可以加入下划线’_’。不过,所有的标识符必须以字母或者是下划线开头。C++保留了一些预先定义好的标识符,称为“关键字(keywords)”或“保留字(reservedwords)
”C++的保留字参考教材附件12.2标识符、变量和常量2.2.2常量字面常量(literalconstant)r*r*3.14命名常量(namedconstant)constfloatPI=3.14;提问:请大家说说命名常量的优点。2.2标识符、变量和常量2.2.3变量变量定义的语法:类型名变量列表;变量的内存映像:intcounter;100……0x0013FF78counter变量的值内存单元的符号名,即变量名整型单元的大小在32位机上是4字节变量的32位地址,以第一个字节的地址来表示2.2标识符、变量和常量2.2.4变量的初始化复制初始化(copy-initialization):inti=1,j=i;charch='A';直接初始化(direct-initialization):inti(1),j(i);charch('A');完成习题2.32.3简单数据类型C++三种简单数据类型:整数类型、浮点类型、枚举类型。2.3.1整数类型2.3.1整数类型
字符类型字符常量单引号括起来的一个字符,如:'a','D','?','$'字符变量用来存放字符常量
例:charc1,c2;
c1='a';
c2='A';字符数据在内存中的存储形式以ASCII码存储,占1字节,用7个二进制位2.3.1整数类型字符数据的使用方法字符数据和整型数据之间可以运算。字符数据与整型数据可以互相赋值。字符串常量例:"CHINA"
"a"
'a'所以:charc;
c="a";2.3.1整数类型
Bool类型布尔类型的表达范围非常有限,只能取false(0)和true(非0)两个值true和false是字面常量标识符,并不是字符串凡是会产生逻辑值的地方都产生bool类型的结果2.3简单数据类型2.3.2浮点类型#include<iostream>usingnamespacestd;voidmain(void){constintPRICE=30;intnum,total;floatv,r,h;num=10;total=num*PRICE;cout<<total<<endl;r=2.5;h=3.2;v=3.14159*r*r*h;cout<<v<<endl;}实型常量float4字节
3.4×10±387位有效数字double8字节
1.7×10±30815位有效数字longdouble
8字节
1.7×10±30815位有效数字实型变量缺省为double型后缀F(或f)
为float型后缀L(或l)
为longdouble
型2.3简单数据类型2.3.3枚举类型枚举类型用来表示对象的状态。枚举类型的定义:enum
TrafficLight{RED,GREEN,AMBER};TrafficLight是类型名;RED、GREEN、AMBER是枚举常量,不是字符串,也不是整型常量枚举类型的例子enum
TrafficLight{RED,GREEN,AMBER};TrafficLightt1,t2;t1=RED;t2=t1+1;t2=TrafficLight(t1+1)完成习题2.42.4地址类型2.4.1指针类型变量的内存映像intcounter=100;100……counter0x0013FF790x0013FF780x0013FF7B0x0013FF7Acounter由4个字节组成每个字节都有各自唯一的地址变量counter的地址2.4地址类型指针的声明指针:用来表示内存地址,用于间接访问内存单元指针变量:用于存放地址的变量指针变量的声明:数据类型*标识符;2.4地址类型1、指针的声明语法形式
存储类型数据类型*指针名=初始地址例:int*pa=&a;1.存储类型是指指针变量本身的存储类型,2.数据类型是指该指针可以指向该数据类型的变量。3.*号表示后面的变量是指针变量。4.初始值通常为某个变量名或为NULL。如:int*p;/*p为指向整型变量的指针*/char*s;/*s为指向整型字符型变量的指针*/float*t;/*t为指向单精度浮点型变量的指针*/21指针变量的赋值指针变量一旦定义,必须采用赋值的方式将其与某个变量实体相联系,才能使用。指针变量的赋值方式:指针变量名=&普通变量名;如:inti,j,*p,*q=&j;p=&i;或:inti,*p;*p=i;两种形式都是将变量i的地址赋给了指针p。指针变量是用来保存某个变量的地址的,而地址是内存单元的编号,因此指针变量的值的数据类型是无符号的整型。
&的位置1、&出现在变量声明语句中被声明变量左边表示声明的是引用如:int&f;2、&给变量赋初值出现在等号右边或执行语句中表示取对象地址2.4地址类型4.const作用于指针三种形式:1)constint*p;p是变量,但指向了常量;2)int*constp;p是常量,但指向了变量;3)constint*constp;常量指针指向了常量完成习题2.52.4地址类型2.4.2引用类型引用的定义简而言之,引用就是对象的别名,即一个对象拥有多个名字。例如:inta=100;int&ra=a;a和ra是同一个单元的不同名字!100……ara2.4地址类型2.引用的使用inta=1,b=2;int&ra=a;++ra的结果是2,与++a完全等效。而操作ra=b并非是使ra成为b的引用,而是将b的值赋给ra,也就是直接赋给a。提示:独立引用必须被初始化!2.4地址类型指针和引用的对比inta=100,*p=&a,&ra=a;a的值是100;对象ra就是对象a,它的值是100;p的值是0x0013FF78,也就是a的地址;*p的值是对象a,它的值是100;0x0013FF781000x0013FF78a(ra)p2.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)2.5结构化类型5.指向数组的引用inta[10];int(&ra)[10]=a;ra[0]=1;不能定义引用的数组:int
&ra[10]=a;错误6.数组的初始化inta[3]={1,2,3};intb[]={1,2,3}; //b的长度为32.5结构化类型2.5.3typedeftypedef int INT;typedef double(*DBLARRPTR)[10]; //定义一个指针类型,该类型的指针指向一个长度为的double型一维数组typedef int& INTREF; //定义了整型引用类型INT anInt;DBLARRPTR dblArr; //dblArr是个数组,而不是一个简单变量INTREF ra=anInt; //ra成为anInt的别名2.6运算符和表达式2.6.1常用运算符和表达式元表达式:字面常量、命名常量、变量赋值表达式(左值、右值)算术表达式关系表达式逻辑表达式条件表达式逗号表达式复合赋值表达式混合运算表达式2.6运算符和表达式2.6.1常用运算符和表达式赋值表达式(左值、右值)对象=表达式左值是赋值符号左边的值,常量不能作为左值;算术表达式基本算术运算符:+-*/%++--优先级与结合性:先乘除,后加减,同级自左至右2.6运算符和表达式2.6.2几种特殊的C++运算符sizeof
inta;
sizeof(a);
sizeof(int);提示:在不同的操作系统、编译环境、硬件平台上,sizeof运算符可能会有得到不同的结果!2.6运算符和表达式2.new和delete double*p,*q,*t; p=newdouble;
q=newdouble(1.0);
t=newdouble[10];
deletep;
delete[]t;提示:new和delete应该成对出现!2.6运算符和表达式3.类型强制转化运算符inta=1,*p=&a;doubleb=2,*q;constintc=3;a=(int)b;//C风格a=int(b);//C++风格a=static_cast<int>(b);//类型安
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业机械采购协议
- 劳动合同中工会的作用
- 大学生创业优惠政策
- 悦读助力成长课件
- 怎制作主题教育
- 阿勒泰职业技术学院《中国现当代文学思潮研究》2023-2024学年第二学期期末试卷
- 阿巴嘎旗2025年三下数学期末达标检测试题含解析
- 陇南地区成县2025年小升初总复习数学精练含解析
- 陕西中医药大学《综合英语AV》2023-2024学年第一学期期末试卷
- SCI论文写作与投稿 第2版-课件 5-SCI论文结果与讨论写作(一)
- 小学六年级体育课件《原地单手肩上投篮》
- 初中数学北师大九年级上册(2023年修订) 反比例函数教案反比例函数-k的几何意义
- 二年级上册心理健康教育课件-我的小伙伴 全国通用(共10张PPT)
- 某公司财务尽职调查报告
- 队列“四会”教学法教案
- YC∕T 266-2008 烟用包装膜
- DB36T 1589-2022水土保持无人机监测技术规程_(高清版)
- 装饰图案__ppt
- 新职业英语-艺术设计.unit5
- 直映认字阅读第一册-1
- 初中物理公式汇总一览表
评论
0/150
提交评论