《CPP基本概念》PPT课件.ppt

上传人:tia****nde 文档编号:11498713 上传时间:2020-04-26 格式:PPT 页数:79 大小:1.16MB
返回 下载 相关 举报
《CPP基本概念》PPT课件.ppt_第1页
第1页 / 共79页
《CPP基本概念》PPT课件.ppt_第2页
第2页 / 共79页
《CPP基本概念》PPT课件.ppt_第3页
第3页 / 共79页
点击查看更多>>
资源描述
C+基本概念,本章需要掌握的内容,C+的基本词法结构,包括关键字、标识符和标点符号基本的数据类型变量与引用整型常量的不同进制表示方法实型常量的不同表示方法字符常量、转义字符与字符串常量标识符常量与宏定义常量各种运算符的作用与优先级类型转换,包括:自动类型转换、强制类型转换和赋值类型转换C+语句简单的输入与输出,2.2第一个C+源程序,#includevoidmain()couthello,worldn;/向屏幕输出hello,world后换行,包含头文件,主函数的函数头,函数后跟的一对,C+输出语句,注释语句,2.3.1关键字,关键字(Keyword)又称保留字。是由系统定义的具有特定含义的英文单词。关键字不能另作它用。,C+大小写敏感(区分大小写),关键字全部由小写字母组成。标准C+(ISO14882)定义了74个关键字,具体的C+编译器还会做一些增删。常用关键字及分类见下表。,关键字,表2-1C+常用关键字及分类,2.3.2标识符,标识符(Identifier,ID)是程序员定义的“单词”,用来给变量、常量、数据类型、函数等命名。,合法标识符由字母或下划线开始,由字母、数字、下划线组成,且不能和关键词同名。其有效长度各个C+编译系统有自己的规定,VC+允许标识符长度为1247个字符。,建议使用有一定含义的英文单词或拼音序列作标识符,以提高可读性;另外尽量不用下划线或双下划线打头,以免与系统定义的关键字冲突。,标识符,例:判断下面哪些是合法的标识符:,MyFile,Salary94,amount,void,94Salary,_94Salary,$amount,f3.5,Num_of_Student,2.3.3标点符号,标点符号包括#、()、,、:、;、等。,标点符号的作用:,有一定的语法意义。如字符和字符串常量分别用和引起来。,对语法符号起分隔作用。如;等,2.3.4分隔符,编写C+程序时,每个词法单位必须使用分隔符将它们分隔开。可用作C+分隔符的有:运算符、标点符号、空格符、Tab符、回车符。,2.4数据类型,计算机处理的对象是数据,而数据是以某种特定的形式转换成二进制码存放在内存中的。例如,整数在内存中采用原码或补码表示、实数采用浮点数表示方式。对于整数10和实数10.0在内存中的数据是不一样的。即使同样表示整数,对于(FFFFFFFF)16若表示为有符号的整数则为-1,若表示为无符号的整数则为232-1。,2.2C+中的数据类型,C+的数据类型,基本数据类型,非基本数据类型,数组type指针type*结构struct联合union枚举enum类class,整型int,字符型char,逻辑型bool,无值型void,实型float双精度型double,实型,整型用来存放整数.有符号的整数在内存中存放的是它的补码,无符号数没有符号位,存放的就是原码。整数占用的字节数与机型有关,32位机上占用4个字节。字符型用来保存字符,存储的是该字符的ASCII码,占用一个字节。如大写字母A的ASCII码为65,在对应的一个字节中存放的就是65。字符型数据从本质上说也是整数,可以是任何一个8位二进制整数。,实型和双精度型都用来存放实数,两者表示的实数精度不同。实数在内存中以浮点数形式存放。无值型主要用来说明函数的返回值类型,将在函数一章中具体介绍。基本数据类型还可以加上一些修饰词,包括:signed(有符号)、unsigned(无符号)、long(长)、short(短)。参见下表:,VC+的基本数据类型,2.5变量,变量,在程序中是指可以改变值的量;变量必须用标识符进行标识,称为变量名;变量有类型之分,如整形变量、字符变量等;任何变量都必须先说明后使用;一是便于编译程序为变量分配空间,二是便于编译时进行语法检查;,例如:inti,j,k;floatx,y,z;charc1,c2;doubledx;,2.5.1变量说明,在C+中,变量说明的一般格式为:存储类型数据类型变量名1,变量名2,变量名n;,三个实型变量x,y,z,二个字符型变量c1,c2,一个双精度型变量dx,三个整型变量i,j,k,2.5.1变量赋初值,给变量赋初值称为初始化,有两种方法:(1)变量说明时直接赋初值。例如:inta=3,b=4,c=5;floatx=3.0;(2)用赋值语句赋初值。例如:floatx,e;x=3.5;e=2.71828;,2.5.2变量与引用,C+中提供一个特殊的特性引用。引用是一种特殊的数据类型,简单地说是为一个已定义的变量起一个别名。定义引用的一般格式为:类型int,refi是变量i的引用,2.6常量,1.整型常量,4.字符串常量,3.字符型常量,2.实型常量,常量,指程序中直接给出的量;常量的值在程序执行过程中保持不变;根据取值和表示方法的不同,可分为以下几种:,2.6.1整型常量,十进制表示法,八进制表示法,十六进制表示法,其他表示法,整数有多种表示方法;,整数的十进制表示方法,十进制表示与我们熟悉的书写方式相同。如15-24,整数的八进制表示,八进制表示以0开始,由数字07组成,用来表示一个八进制数。如:012/八进制数12,即十进制数10-0655/八进制数-655,即十进制数-429,整数的十六进制表示,十六进制以0X(大小写均可)开始,由数字09和字母AF(大小写均可)组成,用来表示一个十六进制数。例如:0 x32A/十六进制数32A,即十进制数810-0 x2fe0/十六进制数-2fe0,/即十进制数-12256,整数的其他表示方法,整型常量还可以表示长整数和无符号整数。长整型常数以L或l结尾,无符号常整数以U或u结尾,以UL或LU(大小写均可)结尾则可表示无符号长整型常数。例如:-84L/十进制长整数-84026U/八进制表示的无符号整数260X32LU/十六进制表示的无符号长整型数32。,2.6.2实型常量,(1)一般形式与平时书写形式相同,由数字09和小数点组成。它一般由整数部分和小数部分组成,可以省略其中之一(如78.或.06,.0),但不能二者皆省略。例如:0.23-125.760.0.46-35.C+编译系统把用这种形式表示的实型数一律按双精度常量处理,在内存中占8个字节。如果在实数的数字之后加字母F或f,表示此数为单精度浮点数,如1234F,-43f,占4个字节。,包含小数点和10的幂的数为实型常量,有两种表示方法:,(2)指数形式(也称为科学表示法)表示为尾数乘以10的次方形式,由尾数、E或e和阶数组成。指数形式要求在E或e前面的尾数部分必须有数字,后面的指数部分必须为整数。,例:判断下列表示是否合法,123E12,-.34e-2,E4,1.43E3.5,2.6.3字符型常量,字符常量是用单引号引起来的单个字符。在内存中保存的是字符的ASCII码值。在所有字符中,有些是可显示字符,通常就用单引号引起来表示:a/字符a/字符4/字符4/空格字符,注意:,e和E是不同的字符常量,它们代表不同的ASCII码值。4和整型数4是不同的值,4的ASCII码值为52。0和0是两个不同的字符。0的ASCII码值为48。而0的ASCII码值为0,详见转义字符,2.6.4转义字符,转义序列就是用转义符“”开始,后跟一个字符或一个整型常量(字符的ASCII码值)的方法来表示一个字符。若转义符后边是一个整型常量,则必须是一个八进制或以x为前缀的十六进制数,其大小在0255之间。当转义符后跟八进制数时,前缀0可以省略。如021、x78、0、56等都是合法的字符型常量。转义符后面的字符必须小写,大写只能表示其自身。如果转义字符后面是大写字母,则忽略反斜杠,作为一个一般的符号处理,即标识大写字母自身。例如:E,则认为就是E。,2.6.5字符串常量,字符串常量与字符型常量的区别,字符串常量”a”占两个字节,存放a和0,值为0 x6100,字符型常量a占一个字节,存放a,值为0 x61,用双引号引起来的若干个字符称为字符串常量。例如:”IamaChinese.”,”123”,”a”,”,2.6.6常变量及常量说明符const,用常量说明符const给常量起个名字(标识符),这个标识符就称为标识符常量,也叫常变量;例如:constfloatPI=3.14159;constintNumber_of_Student=100;,标识符常量使用的注意事项:标识符常量必须也只能在说明时进行初始化;标识符常量初始化之后,不允许再被赋值;标识符常量必须先说明后使用;标识符常量存储在数据区,并且可以按地址访问,编译时系统对常变量进行类型检查。C+建议使用标识符常量,而不要使用直接常量。,2.6.7宏定义常量,C+中可以用预编译指令#define命令将一个指定的标识符(即宏名)来代表源程序中的一个字符串。它的一般形式为#define标识符字符串如:#definePI3.1415926,2.7.1运算符与表达式,C+的运算符按功能大致可分为算术运算符、关系运算符、逻辑运算符、位运算符和其他运算符。C+的某些运算符与数学的运算符书写方式相同,功能也相近,但某些运算符与数学的运算符书写方式虽相同,功能却有所区别。C+的运算符按操作个数可分为单目(一元)运算符、双目(二元)运算符、三目(三元)运算符。,2.7.1运算符优先级,C+规定了运算符优先级和结合性,详见表2-5。C+的运算符众多,优先级存在一定的规律性:单目运算符优先级高,;算术运算符优先级高,关系运算符次之,逻辑运算符低,赋值运算符优先级更低;最高优先级为括号和成员运算符,最低运算符为逗号运算符。C+运算符的结合性也无须死记硬背,一般而言,其结合性和人们的思维习惯相同,2.7.2算术运算符,一元算术运算符有:+正数运算符,一般可省略,例如+3,+9。-负数运算符,例如-10,-100。二元算术运算符有:+加法运算符,例如a+b,3+12,a+55。-减法运算符,例如a-b,34-c,d-100。*乘法运算符,例如a*b,11*c,f*10。除法运算符,例如a/b,100/4,30.0/4.0。%求模(求余)运算符,例如2%5,10%3,6%3。,对于+,-,*,/运算,如果运算符两边的操作数都是整数,其运算结果也是整数;如果参加+,-,*,/运算的两个数中有一个数为float型或double型数据,则运算的结果是double型,对于求模运算,要求两个操作数必须均为整数,其结果为两数相除后的余数。,除法运算,对于除法运算,如果运算符两边的操作数都是整数,其运算结果也是整数,即两数整除;如果两个操作符中有一个是实数,其运算结果就是实数。4/5运算结果为0,4.0/5或4.0/5或4.0/5.0运算结果为0.8,5/4运算结果为1,5.0/4或5/4.0运算结果为1.25。,自增、自减运算符,自增、自减运算符有两个,+和-,其作用是使变量的值增1和减1。+和-可以出现在变量的左边或右边,分别称为前缀运算符和后缀运算符。+i,-i使用前先使变量i的值增加(减)1i+,i-使用后再使变量i的值增加(减)1+i(-i)表示先对i增1(减1),再采用i的新值参与运算i+(i-)表示先将i的值存放于临时变量,再对i增(减1),然后再采用临时变量存放的i的原值参与运算。,【例2.6】自增运算符示例,#includevoidmain()inti=5,j=5;intk,n;k=+i+2;/Acoutk=ki=in;n=j+2;/Bcoutn=nj=jab/结果是?,根据右结合原则其运算过程如下:,a,2,b,3.2,3.5,T,1,F即0,在C+中这两个逻辑值与整数之间有一个对应关系,真对应1,假对应0;反过来,0对应假,非0整数对应真。所以关系运算结果可以作为整数1或者0参与算术运算、关系运算、逻辑运算及其他运算。,2.7.5逻辑运算符,从本质上讲,逻辑运算符要求操作数为逻辑量,因此,逻辑运算符的操作数可以是关系表达式或是另一个逻辑表达式。C+中认为所有的非0为逻辑真,0为逻辑假,因此除void类型之外的任何一种数据类型数据或表达式都可作为逻辑运算符的操作数。,由于逻辑值和整数之间的对应关系,也允许整型和字符型操作数进行逻辑运算:21”,则执行表达式“m=a”(4)按位与运算符“inti=(int)f;后,i的值为3,而f的值依然为3.6。,数据强制转换规则(1),将浮点型数据(包括单、双精度)强制转换成整型变量时,舍弃其小数部分,整数部分在内存中以整数形式存储。将整型数据强制转换成浮点型变量时,数值不变,但以浮点数形式存储。字符型数据强制转换成整型变量,将字符的ASCII码赋给整型变量。,数据强制转换规则(2),将一个short、int或long型数据强制转换成一个char型变量,只将其低8位原封不动地送到char型变量。将signed(有符号)型数据强制转换成长度相同的unsigned(无符号)型变量,或将unsigned(无符号)型数据强制转换成长度相同的signed(有符号)型变量时,存储单元内容原样照搬(连原有的符号位也作为数值一起传送)。,赋值类型转换,如果赋值运算符两侧的数据类型不一致,但都是数值型或字符型时,在赋值时会进行强制类型转换。,#includevoidmain()doublef;coutf;inti=f+0.5;cout转换后整数为变量名1变量名2变量名n;cout实现将数据输出到显示器的操作,格式为:cout,字符的输入输出,cin与cin.get()的区别(1)cin例如:charc1,c2,c3;cinc1;/Acinc2c3;程序执行到A行时,等待用户输入数据。若输入:Abc则cin分别将字符A、b、c赋给变量c1、c2、c3。cin自动跳过输入的空白字符(包括空格,制表,backspace和回车等)。,字符的输入输出,(2)cin.get()例如:charc1,c2,c3,c4;cin.get(c1);/Bcin.get(c2);cin.get(c3);程序执行到B行时,若输入:Ab则执行结果是:字符A、空格、字符b分别赋给变量c1、c2、c3;输入行中仍保留回车符。cin.get()把从键盘上输入的所有字符,包括空白字符,都作为输入字符赋给字符变量,字符的输入输出,关于字符的输出,请看下例,假定字符c1、c2、c3的值分别为字符a、b和c,执行以下语句序列:coutc1tc2n;coutc3endl;coutOkc2c3;/Ccout程序继续执行并输出结果:c1isac2isbc3isc可以看出,双引号中的的字符串常量照原样输出。,十进制数据的输入输出,请看下例:inti,j;floatx,y;coutij;/Dcinxy;cout则程序输出:i=10j=20 x+y=13.1输出时各数据间是无间隔的,因此应当有意输出一些间隔符,如果要求按八进制或十六进制输入输出,在cin或cout中必须指明相应的数据形式,oct为八进制,hex为十六进制,dec为十进制。例如:inti,j,k,l;coutocti;/输入为八进制数cinhexj;/输入为十六进制数cink;/输入仍为十六进制数cindecl;/输入为十进制数cout”hex:”i=”hexiendl;cout”dec:”j=”decjt;cout”k=”kendl;cout”oct:”l=”octl;coutdecendl;/恢复十进制输出状态,4.输入输出的格式控制,(1)各种进制数据的输入输出,在输入十六进制时,数可以用0 x开始,也可以不用加0 x;同样,输入八进制时,数可以用0开始,也可以不用加0。在cin或cout中指明数制后,该数制将一直有效,直到重新指明用其他数制。特别注意:输入数据的格式、个数和类型必须与cin中的变量一一对应,否则不仅使输入数据错误,而且影响后面其他数据的正确输入。,输入输出的格式控制,为了使数据间隔开,还可以用C+提供的函数setw()指定输出数据项的宽度。例如:inti=2,j=3;floatx=2.6,y=1.8;coutsetw(6)isetw(10)jendl;coutsetw(10)i*jendl;coutsetw(8)xsetw(8)yendl;,setw(),输出结果为:2362.61.8,使用setw()应注意以下三点:1、在程序的开始位置必须包含头文件iomanip.h,即在程序的开头增加:#include,2、括号中必须给出一个表达式(值为正整数),它指明紧跟其后输出项的宽度。,3、该设置仅对其后的一个输出项有效。一旦按指定的宽度输出其后的输出项后,又回到原来的缺省输出方式。,setprecision(),cout可使用setprecision()指定输出实数的有效位数。例如:floatpi=3.1415926;coutpin;coutsetprecision(3)pin;coutsetprecision(5)pin;,输出结果为:3.141593.143.1416,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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