第1章cpp基本数据类型、运算符与表达式.ppt

上传人:s****8 文档编号:68595424 上传时间:2022-12-29 格式:PPT 页数:49 大小:409KB
返回 下载 相关 举报
第1章cpp基本数据类型、运算符与表达式.ppt_第1页
第1页 / 共49页
第1章cpp基本数据类型、运算符与表达式.ppt_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《第1章cpp基本数据类型、运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《第1章cpp基本数据类型、运算符与表达式.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1第第1 1章章基本数据类型、运算符与表达式2本章主要内容本章主要内容C+C+基本数据类型及其定义方法。基本数据类型及其定义方法。C+C+的常量定义(逻辑常量,整型常量,实型常的常量定义(逻辑常量,整型常量,实型常量,字符常量,字符串常量,符号常量,枚举常量,字符常量,字符串常量,符号常量,枚举常量)。量)。变量的定义与使用方法。变量的定义与使用方法。C+C+运算符的种类、运算优先级和结合性。运算符的种类、运算优先级和结合性。C+C+表达式类型及求值规则(赋值运算,算术运表达式类型及求值规则(赋值运算,算术运算,关系运算,逻辑运算,条件运算,逗号运算,算,关系运算,逻辑运算,条件运算,逗号运算

2、,位运算等)。位运算等)。31-1 1-1 数据类型数据类型 C+C+提供了十分丰富的预定义数据类型,称为提供了十分丰富的预定义数据类型,称为基基本数据类型本数据类型。除了基本数据类型外,除了基本数据类型外,C+C+还提供了构造数据类还提供了构造数据类型,包括数组、结构体、共用体(联合体)、枚型,包括数组、结构体、共用体(联合体)、枚举和类等。举和类等。C+C+可以使用的数据类型如图所示可以使用的数据类型如图所示:41-1-1 1-1-1 基本数据类型基本数据类型每种基本数据类型各自所占的内存空间是不同的,每种基本数据类型各自所占的内存空间是不同的,因此所表示的数据的范围大小也不同。因此所表示

3、的数据的范围大小也不同。在在5 5种基本数据类型中种基本数据类型中:字符型用于处理字符型用于处理ASCIIASCII码字符码字符整型用于处理整型数据整型用于处理整型数据浮点型用于处理带小数的实数浮点型用于处理带小数的实数布尔型用于表示的逻辑的布尔型用于表示的逻辑的truetrue和和falsefalse无值型主要用于处理函数和指针无值型主要用于处理函数和指针51-1-2 1-1-2 类型修饰符类型修饰符C+C+的类型修饰符包括:的类型修饰符包括:signed 有符号型有符号型unsigned无符号型无符号型short短型短型long长型长型在基本数据类型(除在基本数据类型(除voidvoid类

4、型外)前加上类型修类型外)前加上类型修饰符后,饰符后,C+C+的基本数据类型为的基本数据类型为:6说明:说明:(1 1)表中带)表中带 的部分表示是可以省略的,如的部分表示是可以省略的,如short short intint 可以写为可以写为short short intint或简写为或简写为shortshort,二者的含义是相同的。,二者的含义是相同的。(2 2)4 4种修饰符都可以用来修饰整型和字符型。种修饰符都可以用来修饰整型和字符型。用用signedsigned修饰的类型的值可以为正数或负数,修饰的类型的值可以为正数或负数,用用unsignedunsigned修饰的类型的值只能为正数。

5、修饰的类型的值只能为正数。71-2 1-2 常量常量常量按照不同的数据类型可以分为:常量按照不同的数据类型可以分为:逻辑常量逻辑常量整型常量整型常量浮点型(实型)常量浮点型(实型)常量字符型常量字符型常量字符串常量字符串常量程序是根据程序中常量的程序是根据程序中常量的书写格式书写格式来区分它是属来区分它是属于哪种类型的常量。于哪种类型的常量。81-2-1 1-2-1 逻辑常量逻辑常量逻辑型的取值只有逻辑型的取值只有truetrue和和falsefalse两个,它们称为逻两个,它们称为逻辑常量,分别对应着整数辑常量,分别对应着整数1 1和和0 0。逻辑常量主要用在逻辑运算中。如:逻辑常量主要用在

6、逻辑运算中。如:intint a=2,b=3;a=2,b=3;boolbool x;x;x=(a=b);x=(a=b);9在程序中,用户根据需要分别可以用十进制、八在程序中,用户根据需要分别可以用十进制、八进制和十六进制的形式书写整型常量。进制和十六进制的形式书写整型常量。(1 1)十进制格式:)十进制格式:由数字由数字0 0至至9 9和正、负号组成和正、负号组成书写时直接写出数字书写时直接写出数字若为若为long long intint型的常量,需在常量后加一个字型的常量,需在常量后加一个字母母l l或或L L如如0 0、1111、300300等。等。1-2-2 1-2-2 整型常量整型常量

7、10(2 2)八进制格式:)八进制格式:以以0 0开头的数字(开头的数字(0 0至至7 7)序列)序列如如01110111、0135701357、01717170171717等。等。(3 3)十六进制格式:)十六进制格式:以以0 x0 x或或0X0X开头的数字(数字开头的数字(数字0 0至至9 9、字母、字母a a至至f f)序列)序列如如0 xAA0 xAA、0X12EF0X12EF、0 xFFFF0 xFFFF等。等。11浮点型常量可以用浮点型常量可以用十进制小数形式十进制小数形式或或指数形式指数形式表表示。示。注意:在程序中无论采用十进制小数形式还是注意:在程序中无论采用十进制小数形式还

8、是指数形式,在内存中都是以指数形式存储的。指数形式,在内存中都是以指数形式存储的。1-2-3 1-2-3 浮点型常量浮点型常量12(1 1)十进制小数形式:)十进制小数形式:一般由整数部分和小数部分组成,也可省略其一般由整数部分和小数部分组成,也可省略其一,但不能二者皆省。例如一,但不能二者皆省。例如:.345.34545.45.如果在实数的数字后面加上字母如果在实数的数字后面加上字母F F或或f f,表示此,表示此数为单精度浮点数;数为单精度浮点数;如果加上字母如果加上字母L L或或l l,表示此数为长双精度数。,表示此数为长双精度数。13(2 2)指数形式:)指数形式:也就是通常所讲的科学

9、记数法的描述形式。也就是通常所讲的科学记数法的描述形式。是由数字和是由数字和e e(或(或E E)组成的,且)组成的,且e e(或(或E E)之前必须有数字)之前必须有数字e e(或(或E E)之后必须为整数)之后必须为整数 如:如:12e312e312E312E3.56e8.56e8e5e59e3.69e3.614字符型常量分为字符型常量分为普通字符常量普通字符常量和和转义字符常量转义字符常量(1 1)普通字符常量)普通字符常量用一对单引号括起来的一个字符用一对单引号括起来的一个字符如如ss,YY等等1-2-4 1-2-4 字符型常量字符型常量15注意:注意:单引号只是字符与其他部分的分隔符

10、,不是字符的一部分,单引号只是字符与其他部分的分隔符,不是字符的一部分,并且不能用双引号代替单引号,如并且不能用双引号代替单引号,如 YY不代表字符常量。不代表字符常量。字符常量只能包括一个字符,如字符常量只能包括一个字符,如 abab 是不合法的。是不合法的。单引号中的字符不能是单引号或反斜杠,单引号中的字符不能是单引号或反斜杠,和和都是非法都是非法的字符常量。的字符常量。字符常量区分大小写,如字符常量区分大小写,如YY和和yy表示两个不同的字符常量。表示两个不同的字符常量。16(2 2)转义字符常量)转义字符常量在在C+C+中,有一些字符用于控制输出或编译系中,有一些字符用于控制输出或编译

11、系统本身保留,无法作为字符常量来表示。统本身保留,无法作为字符常量来表示。C+C+规定,采用反斜杠后跟一个字母来代表一规定,采用反斜杠后跟一个字母来代表一个控制字符,反斜杠后的字符不再作原有的字个控制字符,反斜杠后的字符不再作原有的字符使用,而具有新的含义。符使用,而具有新的含义。17(3 3)字符数据在内存中的存储形式及其使用方法)字符数据在内存中的存储形式及其使用方法存储该字符相应的存储该字符相应的ASCIIASCII码,并以二进制形式存放。码,并以二进制形式存放。例如:例如:c1=ac2=b注意:字符数据的运算,均以字符的注意:字符数据的运算,均以字符的ASCII码码进行运算。进行运算。

12、18例例 字符数据和整型数据相互赋值。字符数据和整型数据相互赋值。#include#include using namespace std;using namespace std;intint main()main()intint i;i;char j;char j;/j /j是字符型变量是字符型变量i=A;/i=A;/将一个字符常量赋给整型变量将一个字符常量赋给整型变量i ij=97;/j=97;/将一个字符常量赋给整型变量将一个字符常量赋给整型变量j j coutcouti njn;i njn;return 0;return 0;字符数据的使用方法:字符数据的使用方法:1、字符数据和整型数

13、据可以相互赋值。、字符数据和整型数据可以相互赋值。2、字符数据和整型数据之间可以运算。、字符数据和整型数据之间可以运算。19例例 字符数据与整数进行算术运算。下面程序的作用是将小字符数据与整数进行算术运算。下面程序的作用是将小写字母写字母 a,b a,b 转换为大写字母转换为大写字母 A,BA,B。#include include using namespace std;using namespace std;intint main()main()char c1,c2;char c1,c2;coutcoutc1 c2c1 c2endlendl;return 0;return 0;c1=a;c2

14、=b;c1=c1-32;c2=c2-32;20用一对双引号括起来的一个或多个字符的序列用一对双引号括起来的一个或多个字符的序列字符串字符串以双引号为定界符,双引号不作为字符串的一部分以双引号为定界符,双引号不作为字符串的一部分可以将转义字符加入字符串,转义字符占用一个字节。可以将转义字符加入字符串,转义字符占用一个字节。如如:HelloHello A A Good Morning!Good Morning!I sayn I sayn 1-2-5 1-2-5 字符串常量字符串常量21字符串中的字符的个数称为该字符串中的字符的个数称为该字符串的长度字符串的长度。字符串常量要用字符数组来存放。字符串

15、常量要用字符数组来存放。在存储时,系统自动在字符串的末尾加以字符在存储时,系统自动在字符串的末尾加以字符串结束标志,即转义字符串结束标志,即转义字符 0 0 。22注意:注意:0 0 和和“0”“0”的区别。的区别。00为字符常量,为字符常量,“0”“0”为字符为字符 串常量。串常量。C+规定以字符规定以字符0作为字符串结束标志。作为字符串结束标志。在内存中以在内存中以0为结尾。为结尾。0在输出时不显示,只表示字符串结束。在输出时不显示,只表示字符串结束。cout abc s b)if(ab)return a;return a;else else return b;return b;35全局变

16、量全局变量intint p=1,q=5;p=1,q=5;/全局变量全局变量p p、q qfloat fun1(int a)float fun1(int a)intint b,cb,c char c1,c2;char c1,c2;/全局变量全局变量c1c1、c2c2char fun2(int x,int y)char fun2(int x,int y)intint i,j i,j;intint main()main()intint m,nm,n.;.;注意:注意:如果在程序中没有对全局变量进行如果在程序中没有对全局变量进行初始化,则系统会自动将其初始化为初始化,则系统会自动将其初始化为0。361

17、-3-4 1-3-4 常变量常变量 const const 数据类型标识符数据类型标识符 常变量名常变量名=常量值;常量值;例如:例如:const const intint a=10;a=10;区别用区别用#define#define定义的符号常量和用定义的符号常量和用constconst定义的常变量:定义的常变量:符号常量使用一个字符串代替程序中出现的一个标识符号常量使用一个字符串代替程序中出现的一个标识符,是在编译时把所有的符号常量都替换成指定的字符,是在编译时把所有的符号常量都替换成指定的字符串,它没有数据类型,在内存中也不存在以符号常符串,它没有数据类型,在内存中也不存在以符号常量命名

18、的存储单元。量命名的存储单元。常变量则具有变量的特征,它有数据类型,在内存中常变量则具有变量的特征,它有数据类型,在内存中存在以它的名字命名的存储单元,只是与一般变量所存在以它的名字命名的存储单元,只是与一般变量所不同的是常变量的值不能够改变。不同的是常变量的值不能够改变。371-4 1-4 运算符和表达式运算符和表达式1-4-1 运算符和表达式简介运算符和表达式简介运算符是表示进行何种运算的符号,又称为操作符。运算符是表示进行何种运算的符号,又称为操作符。运算量包含常量、变量、函数等,又称为操作数。运算量包含常量、变量、函数等,又称为操作数。C+C+语言的运算符按照其在表达式中与操作数的关系

19、(即连语言的运算符按照其在表达式中与操作数的关系(即连接的操作数的个数),可以分为:接的操作数的个数),可以分为:单目运算符,如,单目运算符,如,*、+等;等;双目运算符,如,双目运算符,如,+、&等;等;三目运算符,如,条件运算符三目运算符,如,条件运算符?:?:。每个运算符都有优先级和结合性:每个运算符都有优先级和结合性:当一个表达式中包含多个运算符时,先进行优先级高的当一个表达式中包含多个运算符时,先进行优先级高的运算,在进行优先级低的运算;运算,在进行优先级低的运算;而对于多个优先级相同的运算符,运算的顺序就要看运而对于多个优先级相同的运算符,运算的顺序就要看运算符的结合性了。算符的结

20、合性了。38指针运算符指针运算符(*)(*)引用运算符和地址运算符引用运算符和地址运算符()求字节数运算符(求字节数运算符(sizeofsizeof)强制类型转换运算符(强制类型转换运算符((类型类型)或类型或类型()())成员运算符成员运算符 (.)指向成员的运算符指向成员的运算符 (-)下标运算符下标运算符 ()39基本的算术运算符+、-、+(正号正号)、(负负号号)*(乘乘)、/(除除)、%(取余取余)+(加法加法)、(减法减法)优优先先级级高高到到低低40(1 1)/(除)(除)例:例:5/25/2 值为值为:2若若 /的两操作数都为整数,则为整除。的两操作数都为整数,则为整除。9/2

21、值为值为:4例:例:5/2.0 5.0/2 5.0/2.0值为:值为:2.5若若/的两操作数中有一个浮点数,则为的两操作数中有一个浮点数,则为正常的整法运算。正常的整法运算。41例:int i=15;float f;f=i/10;结果为:结果为:f=1如果希望如果希望 f 的结果为的结果为1.5,则可将第三条语句改为:则可将第三条语句改为:例:在例:在C+中,中,(7/3+1)+5/6 的值是(的值是()3f=(float)i/10;或或 f =i/10.0;42要求要求%的两操作数必须为整数,不允许对浮点数操作。的两操作数必须为整数,不允许对浮点数操作。例:例:3%4=3 4%4=0 -4%

22、3=-1 3%4=3 4%4=0 -4%3=-1 4%-3=14%-3=1(2)%(2)%(取余取余)余数的符号与被除数相同。余数的符号与被除数相同。n=40%5n=40%7n=-40%705-543运算对象包括常量运算对象包括常量(数值常量、字符常量,不能对字数值常量、字符常量,不能对字符串常量进行运算符串常量进行运算)、变量、变量、函数等。函数等。a*b/c-1.5+a a*b/c-1.5+a a*b/c-1.5+aba*b/c-1.5+ab算术表达式和运算符的优先级与结合性在求解表达式时,先按一个运算对象两侧的运在求解表达式时,先按一个运算对象两侧的运算符的优先级别高低次序执行。算符的优

23、先级别高低次序执行。a-b*c如果在一个运算对象两侧的运算符的优先级别如果在一个运算对象两侧的运算符的优先级别相同,相同,则按则按“自左至右自左至右”结合,如结合,如 a-b+c44在表达式中常遇到不同类型数据之间进行运算,如在表达式中常遇到不同类型数据之间进行运算,如:10+10+a+1.5-1.4*Aa+1.5-1.4*A表达式中各类数值型数据间的混合运算在进行运算时,不同类型的数据要先转换成同一类在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按图所示。型,然后进行运算。转换的规则按图所示。45假设已指定为整型变量,为假设已指定为整型变量,为floatfloat变

24、量,为变量,为longlong型,型,有下面表达式:有下面表达式:10+10+a+i*f i/ea+i*f i/e (上述的类型转换是由系统自动完成的上述的类型转换是由系统自动完成的)10+a+i*f i/e 1 例:例:1.5+32/5 的值是(的值是()7.5例:例:(1.5+32)/5的值是(的值是()6.746(1)、a+a+:先取先取a的值作为表达式的值,的值作为表达式的值,然后然后a=a+1例:例:int a;a=2;j=a+自增和自减运算符(+、-)结果为:结果为:j=2,a=3(2)、+a:先先a=a+1,然后取然后取a的值作为表达的值作为表达式的值。式的值。例:例:int a

25、;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=47例:写出下列程序运行结果:例:写出下列程序运行结果:int a=3;int b=+a;couta bendl;int c=a+;couta cendl;答案:答案:4 4 5 448#includeinclude using namespace st

26、dusing namespace std;intint main()main()intint i,j,m,n;i,j,m,n;i=8;i=8;j=10;j=10;m=+i+j+;m=+i+j+;n=i+j;n=i+j;coutcoutitjtnitjtnendlendl;return 0;return 0;答案:答案:10 12 20注意:注意:后置后置+、-的优先级的优先级高于前置高于前置+、-49正确地使用正确地使用+和和-,可以使程序简洁、清晰、,可以使程序简洁、清晰、高效。高效。请注意:请注意:(1)(1)自增(减)运算符只能用于变量,而不能用自增(减)运算符只能用于变量,而不能用于常量或表达式。于常量或表达式。(5+5+、(、(a+5)+a+5)+、a+a+)(2)(2)自增(减)运算符使用十分灵活,但在很多情自增(减)运算符使用十分灵活,但在很多情况下可能出现歧义性,产生况下可能出现歧义性,产生“意想不到意想不到”的副作用。的副作用。(3)(3)自增(减)运算符在自增(减)运算符在C+C+程序中是经常见到的,程序中是经常见到的,常用于循环语句中,使循环变量自动加常用于循环语句中,使循环变量自动加1 1。也用于。也用于指针变量,使指针指向下一个地址。指针变量,使指针指向下一个地址。

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

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁