第02章数据类型与表达式

上传人:无*** 文档编号:244507145 上传时间:2024-10-04 格式:PPT 页数:44 大小:622.50KB
返回 下载 相关 举报
第02章数据类型与表达式_第1页
第1页 / 共44页
第02章数据类型与表达式_第2页
第2页 / 共44页
第02章数据类型与表达式_第3页
第3页 / 共44页
点击查看更多>>
资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Logo,*,Click to edit Master title style,第,2,章 数据类型与表达式,C+,程序设计,C+,的数据类型,本章内容,2.,1,常量,2,.2,变量,2.3,C+,的运算符,2.4,算术运算符与算术表达式,2.5,逗号运算符与逗号表达式,2.7,2.6,赋值运算符与赋值表达式,Logo,2.1,C+,的数据类型,数据程序处理的对象,数据类型根据数据的表达形式的不同而划分的类别。,各种数据在内存中均以0、1的二进制形式存储,但存储格式不同。,Logo,2.1,C+,的数据类型,数据类型,基本类型,非基本类型,单精度型,双精度型,数组类型,结构体类型,共用体类型,枚举类型,类类型,Type*,整型,字符型,浮点型,空类型(无值型),布尔型,指针类型,Logo,2.2 常量,2.2.1 什么是常量,常量的值是不能改变的,程序中一般包含直接常量(一般常量)和符号常量两种。,根据数据类型的不同,常量可分为:,整型常量,实型常量(浮点型常量),字符常量,字符串常量,Logo,2.2 常量,1、整型常量(整数),分十进制整数、八进制整数和十六进制整数。书写格式:,整型常量类型,表达形式,有无正负,十进制,10、10,L,或10,l,有正负,八进制,012,只有正,十六进制,0,xA,只有正,注意:10,L、10l,表示长整型,10为一般整型。,Logo,2.2 常量,2.浮点型常量(实型常量),有两种不同的方式表示:,浮点型常量表示方法,表达形式,十进制小数形式,0.12、-1.0、5.、.6,指数形式,12,e3、1.2e4、0.12E5,Logo,2.浮点型常量(实型常量),注:,(1)指数形式的书写,数符 数字部分 指数部分,E,和,e,的前面必须要有数字,且,E,后面的指数必须为整数。,例:,e3 、2.1e3.5、.e3 、e,(2)浮点型常数缺省为,double,型,如表示,float,型,则在实数后加,f,或,F。,如:34.56,f 34.5,Logo,3 字符常量,(1)普通的字符常量,用单撇号括起来的一个字符,如,a,#。,在内存中占一个字节。,注意:,只能包括一个字符,,如,AB,是不合法的。,字符常量区分大小写字母,,如,A,和,a,是两个不同的字符常量。,撇号()是定界符,而不属于字符常量的一部分。,Logo,3 字符常量,(2)转义字符常量,非图形字符(如回车、制表符)及,、,、,“,等字符。,用以“”开头的转义字符常量表示这些特殊字符,见,P24,表2.2。,n,代表一个“换行”符。,“,cout n;”,与“,coutendl;”,作用相同。,0,为空字符,即,NULL,,码值为0。,(与0的区别,0的码值为48),Logo,3 字符常量,(3)字符数据在内存中的存储形式及其使用方法,存储该字符相应的,ASCII,码,并以二进制形式存放。,例如:,c1=a,c2=b,注意:字符数据的运算,均以字符的,ASCII,码进行运算。,Logo,(3)字符数据在内存中的存储形式及其使用方法,字符数据的使用方法:,1、字符数据和整型数据可以相互赋值。,2、字符数据和整型数据之间可以运算。,例2.1字符数据和整型数据相互赋值。,#include,using namespace std;,int main(),int i;,char j;/j,是字符型变量,i=A;/,将一个字符常量赋给整型变量,i,j=97;/,将一个字符常量赋给整型变量,j,couti njn;,return 0;,Logo,(3)字符数据在内存中的存储形式及其使用方法,例2.2 字符数据与整数进行算术运算。下面程序的作用是将小写字母转换为大写字母。,#include,using namespace std;,int main(),char c1,c2;,c1=a;,c2=b;,c1=c1-32;,c2=c2-,3,2,;,coutc1 c2endl;,return 0;,Logo,4.字符串常量,用双撇号括起来的部分就是字符串常量。如,abc,。,注意:,0 和“0”的区别。0为字符常量,“0”为字符串常量。,C+,规定以字符0作为字符串结束标志。在内存中以0为结尾。,字符串常量,abc,在内存中占4个字节(而不是3个字节)。,0在输出时不显示,只表示字符串结束。,cout abc s endl;,输出4个字符,abcs,,而不包括,0,Logo,4.字符串常量,注意:,a,和,a,不同,,a,是字符串常量,,a,是字符常量。前者占两个字节,后者占1个字节。,char c;/,定义一个字符变量,c=a;,c=a;,思考:字符串常量,abc,n,包含几个字符?,Logo,2.2,常量,2.2.4 符号常量,在,C+,程序设计中,常用一个符号名代表一个常量,称为符号常量。,预编译命令:,#,define,符号常量名 值,例:已知圆半径,r,,计算圆的周长及面积。,Logo,2.3 变量,2.3.1 什么是变量,在程序运行期间值可以改变的量称为变量。,变量,变量名,变量值,变量类型,Logo,2.3.2 变量名命名规则,C+,规定标识符只能,由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线,。如:,sum,total2,_day,Student_name,不能与,C+,关键字相同(如:不能取名为,main、Class、if、friend,等),下面标识符是否合法:,M.D.John,#33,3G64,Ling,li,,C+,return,_,student,s_max,Float,float,Logo,2.3.2 变量名命名规则,命名约定:,1、变量名、函数名用小写字母;,2、符号常量名用大写字母;,3、下划线开头的名字常为系统程序(库函数用),用户一般不用。,4、要有意义:如,sum,表示“求和变量”。,Logo,2.3.3 定义变量,变量必须“先定义,后使用”。,如:,float,a,b,c;,定义,a,b,c,为单精度型变量,注意各变量间以逗号分隔,最后是分号。,C,语言要求变量的定义应该放在所有的执行语句之前,而,C+,则只要求在第一次使用该变量之前进行定义即可。,Logo,2.3.4 变量赋初值,变量定义时赋初值。初值可以是常量,也可以是一个表达式。如,float a,b=5.78,c=2*sin(2.0);,注意:数学函数调用必须包含头文件“,cmath,”(,或,math.h),:,#,include,或#,include,Logo,2.3.4 变量赋初值,在变量定义时,对多个变量赋予同一初值,必须分别指定,不能写成:,float a=b=c=4.5;,而应写成:,float a=4.5,b=4.5,c=4.5;,或,float a,b;,float c=a=b=4.5;,Logo,2.3.5 常变量,例如:,const int pi=3.1415;,const,表示定义常变量,变量的值在程序运行期间不能改变,。,注意:,1、在定义常变量时必须同时对它初始化。,2、常变量不能出现在赋值号的左边。,const,int,pi;,pi=3.1415;,Logo,2.3.5 常变量,#,define,命令定义的符号常量与,const,定义的常变量的区别:,1、#,define,定义的符号常量只是用一个符号代替一个常量值,在预编译时把所有符号常量替换为所指定的字符串,在内存中并不存在以符号常量命名的存储单元。,2、,const,定义的常变量具有变量的特征,有类型,在内存中存在着以它命名的存储单元。与一般变量惟一的不同是指定变量的值不能改变(只读)。,Logo,2.4,C+,的运算符,C+,的运算符十分丰富,使得,C+,的运算十分灵活方便。,C+,提供了以下运算符:,(1)算术运算符,+(加)-(减)*(乘)/(除)%(整除求余)+(自加)-(自减),(2)关系运算符,(大于)(小于)(等于)(大于或等于)(小于或等于)!(不等于),Logo,2.4,C+,的运算符,()逻辑运算符,(逻辑与)|(逻辑或)!(逻辑非),()位运算符,(按位右移)(按位与)|(按位或)(按位异或)(按位取反),()赋值运算符,(,及其扩展赋值运算符,),()条件运算符,(?:),()逗号运算符,(,,,),()指针运算符,(*),(9)引用运算符和地址运算符,(),(10)求字节数运算符,(,sizeof),(11)强制类型转换运算符,(,(类型)或类型(),),Logo,2.4,C+,的运算符,(12)成员运算符,(.),(13)指向成员的运算符,(-),(14)下标运算符,(),(15)其他,(如函数调用运算符(),由以上运算符与常量、变量或函数一起构成的每个表达式,在求值后都有一个确定的值。,Logo,2.5 算术运算符与算术表达式,2.5.1 基本的算术运算符,+、-、+(正号)、(负号),*(乘)、/(除)、%(取余),+(加法)、(减法),优先级高到低,Logo,2.5.2 算术表达式和运算符的优先级与结合性,在求解表达式时,先按一个运算对象两侧的运算符的优先级别高低次序执行。,a-b*c,如果在一个运算对象两侧的运算符的优先级别相同,则按“自左至右”结合,如,a-b+c,Logo,2.5.3 表达式中各类数值型数据间的混合运算,在表达式中常遇到不同类型数据之间进行运算,如:,10+,a+1.5-1.4*A,在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图所示。,Logo,2.5.3 表达式中各类数值型数据间的混合运算,假设已指定为整型变量,为,float,变量,为,long,型,有下面表达式:,10+,a+i*f i/e,10+,a,+,i*f,i/e,1,Logo,2.5.4 自增和自减运算符(+、-),(1)、,a+,:,先取,a,的值作为表达式的值,然后,a=a+1,例:,int,a;a=2;j=a+,(2)、,+,a,:,先,a=a+1,然后取,a,的值作为表达式的值。,例:,int,a;a=2;j=+a,(3)、,a,-,:,先取,a,的值作为表达式的值,然后,a=a-1,例:,int,a;a=2;j=a-,(4)、,-,a,:,先,a=a-1,然后取,a,的值作为表达式的值。,例:,int,a;a=2;j=-a,Logo,2.5.4 自增和自减运算符(+、-),例:写出下列程序运行结果:,int a=3;,int b=+a;,couta bendl;,int c=a+;,couta cendl;,Logo,2.5.4 自增和自减运算符(+、-),#include,using namespace std;,int main(),int i,j,m,n;,i=8;,j=10;,m=+i+j+;,n=(+i)+(+j)+m;,coutitjtnendl;,return 0;,Logo,2.5.5 强制类型转换运算符,在表达式中不同类型的数据会自动地转换类型,以进行运算。,利用强制类型转换运算符将一个表达式转换成所需类型。例如:,(,double),(将,a,的值转换成,double,类型),(,int,)(x+y)(,将,x+y,的值转换成整型),(,float)(5/2)(,2.0),(,float)5/2 (,2.5),强制类型转换的一般形式为:,(类型名)(表达式),Logo,2.5.5 强制类型转换运算符,C+,还增加了以下形式:,类型名(表达式),注意:这种写法表达式的括号不能省略。,如,int,(x)、,int,(x+y)、float(5)/2,Logo,2.5.5 强制类型转换运算符,例2.4 强制类型转换。,#,include,using namespace std;,int ma
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!