第1章cpp基本数据类型运算符与表达式课件

上传人:风*** 文档编号:241972610 上传时间:2024-08-08 格式:PPT 页数:49 大小:255.66KB
返回 下载 相关 举报
第1章cpp基本数据类型运算符与表达式课件_第1页
第1页 / 共49页
第1章cpp基本数据类型运算符与表达式课件_第2页
第2页 / 共49页
第1章cpp基本数据类型运算符与表达式课件_第3页
第3页 / 共49页
点击查看更多>>
资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,*,第,1,章,基本数据类型、运算符与表达式,第1章基本数据类型、运算符与表达式,本章主要内容,C+基本数据类型及其定义方法。,C+的常量定义(逻辑常量,整型常量,实型常量,字符常量,字符串常量,符号常量,枚举常量)。,变量的定义与使用方法。,C+运算符的种类、运算优先级和结合性。,C+表达式类型及求值规则(赋值运算,算术运算,关系运算,逻辑运算,条件运算,逗号运算,位运算等)。,本章主要内容C+基本数据类型及其定义方法。,1-1 数据类型,C+,提供了十分丰富的预定义数据类型,称为,基本数据类型,。,除了基本数据类型外,,C+,还提供了构造数据类型,包括数组、结构体、共用体(联合体)、枚举和类等。,C+,可以使用的数据类型如图所示,:,1-1 数据类型 C+提供了十分丰富的预定义数据类型,称,1-1-1 基本数据类型,每种基本数据类型各自所占的内存空间是不同的,因此所表示的数据的范围大小也不同。,在,5,种基本数据类型中,:,字符型用于处理,ASCII,码字符,整型用于处理整型数据,浮点型用于处理带小数的实数,布尔型用于表示的逻辑的,true,和,false,无值型主要用于处理函数和指针,1-1-1 基本数据类型每种基本数据类型各自所占的内存空间,1-1-2 类型修饰符,C+,的类型修饰符包括:,signed,有符号型,unsigned,无符号型,short,短型,long,长型,在基本数据类型(除,void,类型外)前加上类型修饰符后,,C+,的基本数据类型为,:,1-1-2 类型修饰符C+的类型修饰符包括:,说明:,(,1,)表中带,的部分表示是可以省略的,如,short int,可以写为,short int,或简写为,short,,二者的含义是相同的。,(,2,),4,种修饰符都可以用来修饰整型和字符型。用,signed,修饰的类型的值可以为正数或负数,用,unsigned,修饰的类型的值只能为正数。,说明:,1-2 常量,常量按照不同的数据类型可以分为:,逻辑常量,整型常量,浮点型(实型)常量,字符型常量,字符串常量,程序是根据程序中常量的,书写格式,来区分它是属于哪种类型的常量。,1-2 常量常量按照不同的数据类型可以分为:,1-2-1 逻辑常量,逻辑型的取值只有,true,和,false,两个,它们称为逻辑常量,分别对应着整数,1,和,0,。,逻辑常量主要用在逻辑运算中。如:,int a=2,b=3;,bool x;,x=(a=b);,1-2-1 逻辑常量逻辑型的取值只有true和false两个,在程序中,用户根据需要分别可以用十进制、八进制和十六进制的形式书写整型常量。,(,1,)十进制格式:,由数字,0,至,9,和正、负号组成,书写时直接写出数字,若为,long int,型的常量,需在常量后加一个字母,l,或,L,如,0,、,11,、,300,等。,1-2-2,整型常量,在程序中,用户根据需要分别可以用十进制、八进制和十六进制的形,(,2,)八进制格式:,以,0,开头的数字(,0,至,7,)序列,如,0111,、,01357,、,0171717,等。,(,3,)十六进制格式:,以,0 x,或,0X,开头的数字(数字,0,至,9,、字母,a,至,f,)序列,如,0 xAA,、,0X12EF,、,0 xFFFF,等。,(2)八进制格式:,浮点型常量可以用,十进制小数形式,或,指数形式,表示。,注意:在程序中无论采用十进制小数形式还是指数形式,在内存中都是以指数形式存储的。,1-2-3,浮点型常量,浮点型常量可以用十进制小数形式或指数形式表示。1-2-3 浮,(,1,)十进制小数形式:,一般由整数部分和小数部分组成,也可省略其一,但不能二者皆省。例如,:,.345,45.,如果在实数的数字后面加上字母,F,或,f,,表示此数为单精度浮点数;,如果加上字母,L,或,l,,表示此数为长双精度数。,(1)十进制小数形式:,(,2,)指数形式:,也就是通常所讲的科学记数法的描述形式。,是由数字和,e,(或,E,)组成的,且,e,(或,E,)之前必须有数字,e,(或,E,)之后必须为整数,如:,12e3,12E3,.56e8,e5,9e3.6,(2)指数形式:,字符型常量分为,普通字符常量,和,转义字符常量,(,1,)普通字符常量,用一对单引号括起来的一个字符,如,s,,,Y,等,1-2-4,字符型常量,字符型常量分为普通字符常量和转义字符常量1-2-4 字符型常,注意:,单引号只是字符与其他部分的分隔符,不是字符的一部分,并且不能用双引号代替单引号,如,Y,不代表字符常量。,字符常量只能包括一个字符,如,ab,是不合法的。,单引号中的字符不能是单引号或反斜杠,,和,都是非法的字符常量。,字符常量区分大小写,如,Y,和,y,表示两个不同的字符常量。,注意:单引号只是字符与其他部分的分隔符,不是字符的一部分,,(,2,)转义字符常量,在,C+,中,有一些字符用于控制输出或编译系统本身保留,无法作为字符常量来表示。,C+,规定,采用反斜杠后跟一个字母来代表一个控制字符,反斜杠后的字符不再作原有的字符使用,而具有新的含义。,(2)转义字符常量,(3)字符数据在内存中的存储形式及其使用方法,存储该字符相应的,ASCII,码,并以二进制形式存放。,例如:,c1=a,c2=b,注意:字符数据的运算,均以字符的,ASCII,码进行运算。,(3)字符数据在内存中的存储形式及其使用方法例如:c1=a,例 字符数据和整型数据相互赋值。,#include,using namespace std;,int main(),int i;,char j;/j,是字符型变量,i=A;/,将一个字符常量赋给整型变量,i,j=97;/,将一个字符常量赋给整型变量,j,couti njn;,return 0;,字符数据的使用方法:,1、字符数据和整型数据可以相互赋值。,2、字符数据和整型数据之间可以运算。,例 字符数据和整型数据相互赋值。字符数据的使用方法:,例 字符数据与整数进行算术运算。下面程序的作用是将小写字母,a,b,转换为大写字母,A,B,。,#,include,using namespace std;,int main(),char c1,c2;,coutc1 c2endl;,return 0;,c1=a;,c2=b;,c1=c1-32;,c2=c2-32;,例 字符数据与整数进行算术运算。下面程序的作用是将小写字母,用一对双引号括起来的一个或多个字符的序列,字符串,以双引号为定界符,双引号不作为字符串的一部分,可以将转义字符加入字符串,转义字符占用一个字节。,如,:,Hello,A,Good Morning!,I sayn,1-2-5,字符串常量,用一对双引号括起来的一个或多个字符的序列1-2-5 字符串常,字符串中的字符的个数称为该,字符串的长度,。,字符串常量要用字符数组来存放。,在存储时,系统自动在字符串的末尾加以字符串结束标志,即转义字符,0,。,字符串中的字符的个数称为该字符串的长度。,注意:,0 和“0”的区别。0为字符常量,“0”为字符 串常量。,C+,规定以字符0作为字符串结束标志。在内存中以0为结尾。,0在输出时不显示,只表示字符串结束。,cout abc s b),return a;,else,return b;,形式参数局部变量,全局变量,int p=1,q=5;/,全局变量,p,、,q,float fun1(int a),int b,c,char c1,c2;/,全局变量,c1,、,c2,char fun2(int x,int y),int i,j;,int main(),int m,n.;,注意:,如果在程序中没有对全局变量进行初始化,则系统会自动将其初始化为,0,。,全局变量注意:如果在程序中没有对全局变量进行初始化,则系统会,1-3-4 常变量,const,数据类型标识符 常变量名,=,常量值;,例如:,const int a=10;,区别用,#define,定义的符号常量和用,const,定义的常变量:,符号常量使用一个字符串代替程序中出现的一个标识符,是在编译时把所有的符号常量都替换成指定的字符串,它没有数据类型,在内存中也不存在以符号常量命名的存储单元。,常变量则具有变量的特征,它有数据类型,在内存中存在以它的名字命名的存储单元,只是与一般变量所不同的是常变量的值不能够改变。,1-3-4 常变量 const 数据类型标识符 常变量名=,1-4 运算符和表达式,1-4-1,运算符和表达式简介,运算符是表示进行何种运算的符号,又称为操作符。,运算量包含常量、变量、函数等,又称为操作数。,C+,语言的运算符按照其在表达式中与操作数的关系(即连接的操作数的个数),可以分为:,单目运算符,如,*、,+,等;,双目运算符,如,,+,、,&,等;,三目运算符,如,条件运算符,?:,。,每个运算符都有优先级和结合性:,当一个表达式中包含多个运算符时,先进行优先级高的运算,在进行优先级低的运算;,而对于多个优先级相同的运算符,运算的顺序就要看运算符的结合性了。,1-4 运算符和表达式1-4-1 运算符和表达式简介,指针运算符(*),引用运算符和地址运算符(),求字节数运算符(,sizeof),强制类型转换运算符((类型)或类型()),成员运算符(.),指向成员的运算符(-),下标运算符(),指针运算符(*),基本的算术运算符,+、-、+(正号)、(负号),*(乘)、/(除)、%(取余),+(加法)、(减法),优先级高到低,基本的算术运算符+、-、+(正号)、(负号)优先级,(1)/(除),例:5/2,值为:2,若 /的两操作数都为整数,则为整除。,9/2,值为:4,例:5/2.0 5.0/2 5.0/2.0,值为:2.5,若/的两操作数中有一个浮点数,则为正常的整法运算。,(1)/(除)值为:2若 /的两操作数都为整数,则,例:,int i=15;,float f;,f=i/10;,结果为:,f=1,如果希望,f,的结果为1.5,则可将第三条语句改为:,例:在,C+,中,(7/3+1)+5/6 的值是(),3,f=(float)i/10;,或,f =i/10.0;,例:int i=15;结果为:f=1如果希望,要求%的两操作数必须为整数,不允许对浮点数操作。,例:3%4=3 4%4=0 -4%3=-1 4%-3=1,(2)%(取余,),余数的符号与被除数相同。,n=40%5,n=40%7,n=-40%7,0,5,-5,要求%的两操作数必须为整数,不允许对浮点数操作。(2),运算对象包括常量(数值常量、字符常量,不能对字符串常量进行运算,),、变量,、,函数等。,a*b/c-1.5+a,a*b/c-1.5+ab,算术表达式和运算符的优先级与结合性,在求解表达式时,先按一个运算对象两侧的运算符的优先级别高低次序执行。,a-b*c,如果在一个运算对象两侧的运算符的优先级别相同,则按“自左至右”结合,如,a-b+c,运算对象包括常量(数值常量、字符常量,不能对字符串常量进行运,在表达式中常遇到不同类型数据之间进行运算,如:,10+,a+1.5-1.4*A,表达式中各类数值型数据间的混合运算,在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图所示。,在表达式中常遇到不同类型数据之间进行运算,如:表达式中各类,假设已指定为整型变量,为,float,变量,为,long,型,有下面表达式:,10+,a+i*f i/e,(上述的类型转换是由系统自动完成的),10+,a,+,i*f,i/e,1,例:1.5+32/5 的值是(),7.5,例:(1.5+32)/5的值是(),6.7,假设已指定为整型变量,为float变量,为long型,,(1)、,a+,:,先取,a,的值作为表达式的值,然后,a=a+1,例:,int a;a=2;j=a+,自增和自减运算符(+、-),结果为:,j=2,a=3,(2)、,+,a,:,先,a=a+1,然后取,a,的值作为表达式的值。,例:,int a;a=2;j=+a,结果为:,j=3,a=3,(3)、,a,-,:,先取,a,的值作为表达式的值,然后,a=a-1,例:,int a;a=2;j=a-,结果为:,j=2,a=1,(4)、,-,a,:,先,a=a+1,然后取,a,的值作为表达式的值。,例:,int a;a=2;j=-a,结果为:,j=,a=,(1)、a+:先取a的值作为表达式的值,然后a=a+1自,例:写出下列程序运行结果:,int a=3;,int b=+a;,couta bendl;,int c=a+;,couta cendl;,答案:4 4,5 4,例:写出下列程序运行结果:答案:4 4,#,include,using namespace std;,int main(),int i,j,m,n;,i=8;,j=10;,m=+i+j+;,n=i+j;,coutitjtnendl;,return 0;,答案:10 12 20,注意:,后置+、-的优先级高于前置+、-,#include答案:10 1,正确地使用+和-,可以使程序简洁、清晰、高效。,请注意:,(1)自增(减)运算符只能用于变量,而不能用于常量或表达式。,(,5+、(,a+5)+、a+,),(2)自增(减)运算符使用十分灵活,但在很多情况下可能出现歧义性,产生“意想不到”的副作用。,(3)自增(减)运算符在,C+,程序中是经常见到的,常用于循环语句中,使循环变量自动加1。也用于指针变量,使指针指向下一个地址。,正确地使用+和-,可以使程序简洁、清晰、高效。(2,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


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

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


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