您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C++程序设计(第2章)new
C/C++程序设计教程郑秋生主编2020/11/52第2章数据类型、运算符和表达式本章学习重点掌握内容:C++的基本数据类型常量和变量基本运算符和表达式类型转换2020/11/53第2章数据类型、运算符和表达式2.1保留字和标识符2.2C++的基本数据类型2.3常量与变量2.4基本运算符和表达式2.5数据类型转换2.6简单的输入/输出实现方法2020/11/542.1保留字和标识符2.1.1保留字C++中保留字(Reservedword)也称为关键字(Keyword),它们是预先定义好的字符集合,对C++编译程序有着特殊的含义。ANSIC++中共有48个保留字,其它版本的C++有一些扩充。表2-1给出了C++和VisualC++兼容的43个保留字。保留字是语言系统的保留成分,编程者不能使用它们作为自己的变量名或函数名等。2020/11/552.1.2标识符标识符是程序员定义的有效字符序列,用来标识自己定义的变量名、符号常量名、函数名、数组名、类型名等。标识符的命名应遵循以下规则:(1)不能是C++保留字。(2)只能由英文字母、数字和下划线三种字符组成。第一个字符必须是字母或下划线。(3)中间不能有空格。(4)不要太长,一般以不超过31个字符为宜。(5)不要与C++的库函数名和类名相同。2020/11/562.1.2标识符下面是合法的标识符:Way_coolbits32myname_rightonbook_2下面是不合法的标识符:D.S.Name#32357S9cd-W在C++中,字母的大小写是有区别的。例如:Add、add和ADD分别表示不同的标识符。2020/11/572.2C++的基本数据类型数据类型决定了该数据所占用的存储空间、所表示的数据范围和精度、以及所能进行的运算。C++语言的数据类型大致可分为两类:一类是基本数据类型,另一类是非基本数据类型。基本数据类型包括整型、字符型、浮点型和布尔型等。非基本数据类型包括由基本数据类型构造出来的构造类型、指针类型、引用类型和空类型等。如图2-1所示。2020/11/582.2C++的基本数据类型整型基本类型字符型浮点型布尔型枚举类型数组类型数据类型构造类型结构体类型共用体类型类类型指针类型引用类型空类型(void)图2-1C++的数据类型2020/11/592.2C++的基本数据类型C++语言的基本数据类型有如下四种:整型,说明符为int;字符型,说明符为char;浮点型(实型),分为float(单精度浮点型),double(双精度浮点型);布尔型,说明符为bool。它的值是true和false。为了满足各种情况的需求,可在类型标识符char和int之前加上一些修饰词,用来更准确地定义数据的类型及属性。这些修饰词有signed(有符号的)、unsigned(无符号的)、long(长的)、short(短的)。教材中表2-2列出了VisualC++6.0中基本数据类型的情况。2020/11/5102.3常量与变量2.3.1常量常量是指在程序运行过程中其值不能改变的量。常量具有类型属性,类型决定了各种常量在内存中占据存储空间的大小。2020/11/5112.3.1常量1.整型常量整型常量即整型常数,没有小数部分,可以用十进制、八进制和十六进制3种形式来表示。⑴十进制整型常量由0~9组成,没有前缀,不能以0开始,如:123,-567。⑵八进制整型常量以0(零)为前缀,后跟由0~7组成的整型常数,如:0456,-013。⑶十六进制整型常量以0X(零X)或0x为前缀,后跟由0~9和A~F组成的整型常数,如:0xAB,-0x23。2020/11/5122.3.1常量2.浮点型常量浮点型常量是由整数部分和小数部分组成。只能用十进制来表示。浮点型常量有两种表示法:一种是小数表示法,整数和小数这两个部分可以省去一个,但不可两者都省去。例如:3.47,.234,5.等。另一种是科学表示法,它通常表示很大或很小的浮点数,表示方法是在小数后面加E(或e)表示指数,指数部分可正可负,但必须是整数。例如:3.5E-5,5.7e9,5e3等。实型常量缺省为double型,如后缀为f或F,则为float型。在程序中不论把浮点数写成小数形式还是指数形式,在内存中都是以指数形式(即浮点形式)存储的。2020/11/5132.3.1常量3.字符常量C++中有两种字符常量,即一般字符常量和转义字符常量。⑴一般字符常量一般字符常量是用一对单引号括起来的一个字符,例如,'A','$',''(空格)。字符的类型是char类型,它的值为所括起的字符在ASCII表中的编码。⑵转义字符转义字符是特殊的字符常量,表示时一般以转义字符‘\’开始,后跟不同的字符表示不同的特殊字符,课本中表2-3列出了常用的特殊字符。2020/11/5142.3.1常量4.字符串常量在C++中,字符串常量是由双引号括起来的若干个字符序列,例如:CHINA,a。字符串中的字符在内存中连续存储,并在最后加上字符'\0'作为字符串结束的标志。如CHINA在内存中存放如图2-2所示。图2-2字符串在内存中的存放编译系统会在字符串最后自动加一个'\0'作为字符串结束标志。但'\0'并不是字符串的一部分,它只作为字符串的结束标志。'C'‘H'‘I'‘N'‘A'‘\0'2020/11/5152.3.1常量5.符号常量在C++中,可以用一个标识符来表示一个常数,这个标识符就是符号常量。C++语言提供了两种定义符号常量的方法:一种是使用编译预处理命令#define;另一种是使用C++中的常量说明符const。例如:#defineStableconstfloatpi=3.1415使用符号常量提高程序的可读性。且修改时只需在定义处修改。2020/11/5162.3.2变量变量是指在程序运行过程中其值可以改变的量。变量是有名字的,在内存中占据一定的存储单元。在C++语言中使用变量之前必须先定义它的数据类型,根据其数据类型的不同,可分为不同类别的变量:如字符型变量、整型变量、实型变量等。2020/11/5172.3.2变量1.变量的命名变量的命名要遵循C++语言中标识符的命名规定:⑴系统规定的关键字不可再作为变量名。⑵第一个字符必须是字母或下划线,后跟字母、数字或下划线,中间不能有空格。⑶命名变量应尽量做到“见名知意”,这样有助于记忆,增加可读性。⑷在命名变量时,大小写字母是不一样的。例如,X1和x1是两个不同的变量。另外,为了提高程序的可读性,一般变量采用匈牙利命名法。微软公司为匈牙利命名法提供了一组前缀字符,如课本中表2-4所示,2020/11/5182.3.2变量2.定义变量在C++语言中,要求对所有用到的变量作强制定义,也就是必须“先定义,后使用”。定义变量的一般格式为:类型变量名列表;当有多个相同数据类型的变量名时,其间可用逗号分离,也可以分别定义,例如:inta,b,c;//定义三个整型变量a,b,cunsignedu;//定义一个无符号整型变量ufloatf;//定义一个单精度实型变量fcharc1,c2,c3;//定义三个字符型变量c1,c1,c32020/11/5192.3.2变量3.变量赋初值当使用变量时,变量必须有值,给变量赋初值的方法有两种:⑴定义变量的同时,直接给变量赋一个初值。例如:inti=100,j=200;//分配内存并初始化charc1='A',c2='B';⑵变量定义后,用赋值语句赋初值。例如:inti,j;//分配内存i=100;j=200;//赋初值charc1,c2;c1='A';c2='B';2020/11/5202.4基本运算符和表达式在程序中,表达式是用来计算求值的,它是由运算符和运算数(操作数)组成的式子。运算符是表示进行某种运算的符号。运算数包含常量、变量和函数等。下面分别对C++中的基本运算符和表达式进行介绍。2020/11/5212.4.1基本运算符和表达式的简介C++提供了丰富的运算符,可以构成复杂的表达式。按运算符在表达式中与运算对象的关系(连接运算对象的个数)可分为:·单目运算(一元运算符,只需一个操作数)·双目运算(二元运算符,需两个操作数)·三目运算(三元运算符,需三个操作数)按运算符的运算性质又可分为算术运算符、关系运算符、逻辑运算符等。表2-5列出了C++中各种运算符及其优先级和结合性。2020/11/5222.4.1基本运算符和表达式的简介优先级运算符结合性1().-[]::.*-*&(引用)左→右2*(间接访问)&(取地址)newdelete!~++---sizeof右→左3*(乘)/(除)%(求余)(算术运算符)左→右4+-(算术运算符)左→右5(位运算符)左→右6==(关系运算符)左→右7==!=(关系运算符)左→右8&(位运算:与)左→右9^(位运算:异或)左→右10|(位运算:或)左→右11&&(逻辑运算:与)左→右12||(逻辑运算:或)左→右13?:(条件运算,三目运算符)右→左14=+=-=*=/=%===&=^=|=(赋值及复合赋值运算符)右→左15,(逗号运算符)左→右2020/11/5232.4.2算术运算符和算术表达式1.基本算术运算符+(加法运算符,或正值运算符,如1+2,+3)-(减法运算符,或负值运算符,如1-2,-3)*(乘法运算符,如1*2)/(除法运算符,如1/2)%(模运算符或称求余运算符,如7%3=1)其中+(取正)、-(取负)是单目运算符,其余是双目运算符。2020/11/5242.4.2算术运算符和算术表达式2.自增和自减(增1和减1)运算符自增和自减运算符都是单目运算符,它们表示为:++和--,运算结果是将操作数增1或减1。这两个运算符都有前置和后置两种形式。a++;//等价于a=a+1;++a;//等价于a=a+1;a--;//等价于a=a-1;--a;//等价于a=a-1;++a的意义:先修改操作数使之增1,然后将增1过的a值作为表达式的值。a++的意义:先将a值作为表达式的值确定下来,再将a增1。2020/11/5252.4.3赋值运算符和赋值表达式赋值运算符“=”的一般格式为:变量=表达式;它表示将其右侧的表达式求出结果,赋给其左侧的变量。例如:inti;i=3*(4+5);//i的值变为27赋值表达式本身的运算结果是左侧表达式的值,而结果类型是左侧变量的数据类型。赋值运算符的结合性是从右至左的,因此,C++程序中可以出现连续赋值的情况。复合赋值运算符2020/11/5262.4.4关系运算符和关系表达式关系运算符用于两个值进行比较,运算结果为true(真)或false(假)。C++中的关系运算符如下:(小于)=(小于等于)(大于)=(大于等于)==(等于)!=(不等于)、=、、=运算符的优先级相同,==和!=运算符的优先级相同,前者运算的优先级高于后者。关系运算符的优先级低于算术运算符。关系表达式的值为逻辑值true(真)或false(假)。2020/11/5272.4.5逻辑运算符与逻辑表达式C++中提供了三种逻辑运算符,它们是:&&(逻辑与,二元运算符)||(逻辑或,二元运算符)!(逻辑非,一元运算符)逻辑运算真值表如表2-6所示。aba&&ba||b!a00011011001011010110逻辑非的优先级最高,逻辑与次之,逻辑或最低。表2-6逻辑运算的真值表2020/11/5282.4.6位运算符和位运算表达式位(bit)是计算机中表示信息的最小单位,一般用0和1表示。一个字符在计算机中用8个位表示,8个位组成一个字节。C++语言需要将人们通常所习惯的十进制数表示为二进制、八进制或十六进制数来理解对位的操作。C++中所有的位运算符如下:1.按位与(&)2.按位或(|)3.按位异或(^)4.按位求反(~)5.左移()6.右移()2020/11/5292.4.7条件运算符
本文标题:C++程序设计(第2章)new
链接地址:https://www.777doc.com/doc-7199058 .html