C++语言基础.ppt
《C++语言基础.ppt》由会员分享,可在线阅读,更多相关《C++语言基础.ppt(496页珍藏版)》请在咨信网上搜索。
1、C+语言基础盐城工学院 惠为君C+概述C+的特点发展历史和未来(CC+(AT&T)Java(SUN)C#(MS)与其它语言比较(7点):面向对象的概念:数据的封装和隐藏、继承、多态VC上机过程C+的字符集的字符集26个个小写字母小写字母 abcdefghijklmnopqrstuvwxyz 26个个大写字母大写字母 ABCDEFGHIJKLMNOPQRSTUVWXYZ 10个个阿拉伯数字阿拉伯数字0 1 2 3 4 5 6 7 8 9其他符号其他符号+-*/=,._:;?|!#%&()空格空格 C+语言使用下列基本字符来构成词法单位:结束第二章:数据类型 运算符 表达式2.1VC+的数据类型计
2、算机所处理的数据以一定形式存放在内计算机所处理的数据以一定形式存放在内存中,数据的存储方式以及能够进行的合存中,数据的存储方式以及能够进行的合法运算都与数据类型直接相关。法运算都与数据类型直接相关。C+的特的特点之一就是提供了丰富的数据类型,以便点之一就是提供了丰富的数据类型,以便处理各种不同的数据。处理各种不同的数据。数据类型总是与运数据类型总是与运算封装在一起,本质上是面向对象的。算封装在一起,本质上是面向对象的。本本章将简要介绍章将简要介绍C+中的数据类型及相关运中的数据类型及相关运算,以及常量、变量、表达式、语句等,算,以及常量、变量、表达式、语句等,最后介绍简单的输入输出方法。最后介
3、绍简单的输入输出方法。2.1.1 关键字数据类型说明符与修饰符bool char wchar_t class const double enum float int long short signedstructunionunsignedvoidvolatile存储类型说明符autoexterninlineregisterstatic访问说明符friendprivateprotectedpublic其它说明符asmexplicitnamespaceoperatortemplatethistypedeftypenameusingvirtual语句与标号breakcasecatchcontinue
4、defaultdoelseforgotoifreturnswitchthrowtrywhile运算符及逻辑值deletefalsenewsizeoftrue 还有一些关键字本书未介绍:还有一些关键字本书未介绍:const_cast dynamic_cast reinterpret_cast static_cast export mutable typeid 下面可用一些关键字代替逻辑运算符:下面可用一些关键字代替逻辑运算符:and and_eq bitand bitorCompl not or or_eqXor xor_eq not_eq2.1.2 标识符标识符标识符(Identifier,I
5、D)是程序员定义的“单词”,用来给变量、常量、数据类型、函数等命名。合法标识符由字母或下划线开始,由字母、数字、下划线组成,其有效长度为131个字符,长度超过31个字符者只识别前31个字符,VC+标识符长度为1247个字符。建议使用有一定含义的英文单词或拼音序列作标识符,以提高可读性;另外尽量不用下划线或双下划线打头,以免与系统定义的关键字冲突。ok标识符标识符例:判断下面哪些是合法的标识符:MyFileSalary94amountvoid94SalarySalary94$amountf3.5Num_of_Student2.1.2结束2.1.3 标点符号标点符号标点符号包括:#、()、,、:、
6、;、等。标点符号的作用:有一定的语法意义。如字符和字符串常量分别用和“”引起来。对语法符号起分隔作用。如;等2.1.3结束2.1.5 C+的基本数据类型的基本数据类型图2-1C+的数据结构实型float双精度型doubleC+的数据类型基本数据类型非基本数据类型数组type指针type*结构struct联合union枚举enum类class整型int字符型char逻辑型bool无值型void实型ok C+对基本数据类型也分别进行了封装,称为内置数据类型,内置数据类型不仅定义了数据类型,还定义了常用操作。本节仅介绍各种基本数据类型的定义,常用操作将在后面介绍。C+为强类型语言,所有数据的使用严格
7、遵从“先说明后使用”的原则,以便编译器进行编译。整型用来存放整数,整数(有符号的整数)在内存中存放的是它的补码,无符号数没有符号位,存放的就是原码。整数占用的字节数与机型有关,32位机上占用4个字节。字符型用来保存字符,存储的是该字符的ASCII码,占用一个字节。如大写字母A的ASCII码为65,在对应的一个字节中存放的就是65。字符型数据从本质上说也是整数,可以是任何一个8位二进制整数。由于汉语系字符很多,用ASCII字符集处理远远不够,因此又创立了双字节字符集(DBCS:double-byte character set),每个字符用两个字节来编码。为便于软件的国际化,国际上一些知名公司联
8、合制定了新的宽字节字符标准Unicode。该标准中所有字符都是双字节的,不同的语言和字符集分别占用其中一段代码。这种用统一编码处理西文、中文及其它语言符号,就是unicode码。C+同时也支持宽字符类型(wchar_t),或称双字节字符型。实型和双精度型都用来存放实数,两者表示的实数精度不同。实数在内存中以规范化的浮点数存放,包括尾数、数符和阶码。数的精度取决于尾数的位数,32位机上实型为23位(因规范化数的数码最高位恒为1,不必存储,实际为24位),双精度为52位。逻辑型也称布尔型,其取值为true(逻辑真)和false(逻辑假),存储字节数在不同编译系统中可能有所不同,VC+6.0中为1个
9、字节。布尔型在运算中可以和整型相互转化,false对应为0,true对应为1或非0无值型主要用来说明函数的返回值类型,将在函数一章中具体介绍。基本数据类型还可以加上一些修饰词,包括:signed(有符号)、unsigned(无符号)、long(长)、short(短)。参见下表:2.2结束类型名称占用字节数取值范围bool布尔型true,false(signed)char有符号字符型1-128127unsigedchar无符号字符型10255(signed)short(int)有符号短整型2-3276832767unsignedshort(int)无符号短整型2065535(signed)int
10、(signed)有符号整型4-231(231-1)unsigned(int)无符号整型40(232-1)(signed)long(int)有符号长整型4-231(231-1)unsignedlong(int)无符号长整型40(232-1)float实型4-10381038double双精度型8-1030810308longdouble长双精度型8-1030810308void无值型0无值VC+中所有基本数据类型2.1.6 常量在程序的执行过程中,值保持不变的量称为 常量字面常量,指程序中直接给出的量;常量的值在程序执行过程中保持不变;并且存储在程序区,而非数据区;根据取值和表示方法的不同,可分
11、为以下几种:a.整形常量d.字符串常量c.字符型常量b.实型常量okA整型常量十进制表示法八进制表示法十六进制表示法其他表示法即整数,可以有多种表示方法:ok 整数的十进制表示方法十进制表示与我们熟悉的书写方式相同。如15 -24ok 整数的八进制表示 八进制表示以0开始,由数字07组成,用来表示一个八进制数。如:012/八进制数12,即十进制数10-0655/八进制数-655,即十进制数-429ok 整数的十六进制表示 十六进制以0X(大小写均可)开始,由数字09和字母AF(大小写均可)组成,用来表示一个十六进制数。以下是一些常整数的例子:0 x32A /十六进制数32A,即十进制数810-
12、0 x2fe0 /十六进制数-2fe0,/即十进制数-12256ok整数的其他表示方法 整型常量还可以表示长整数和无符号整数。长整型常数以 L 或 l 结尾,无符号常整数以 U 或 u 结尾,以 U L 或 L U(大小写均可)结尾则可表示无符号长整型常数。例如:-84L/十进制长整数-84026U/八进制表示的无符号整数260X32LU/十六进制表示的无符号长整型数32。整数结束B实型常量(1)一般形式与平时书写形式相同,由数字 0 9和小数点组成。例如:0.23 -125.76 0.0 .46 -35.(2)指数形式(也称为科学表示法)表示为尾数乘以10的次方形式,由尾数、E或e和阶数组成
13、。指数形式要求在E或e前面的尾数部分必须有数字,后面的指数部分必须为整数。例:判断下列表示是否合法123E12-.34e-2E41.43E3.5包含小数点和10的幂的数为实型常量,有两种表示方法:实数 结束C字符型常量 字符常量是用单引号引起来的单个字符。在内存中保存的是字符的ASCII码值。在所有字符中,有些是可显示字符,通常就用单引号引起来表示:a/字符a/字符4/字符4/空格字符有些是特殊情况字符,如不可显示的字符等,c+使用转义序列表示方法,如(祥见表2-3,此处略):n/换行 /字符 字符常 结束D.字符串常量字符串常量与字符型常量的区别字符串常量a占两个字节,存放a和 0,值为0
14、x6100字符型常量a占一个字节,存放a,值为0 x612.3.2结束用双引号引起来的若干个字符称为字符串常量。例如:I am a Chinese.,123,a,2 标识符常量及常量说明符CONST用常量说明符const给字面常量起个名字(标识符),这个标识符就称为标识符常量;因为标识符常量的说明和引用形式很像变量,所以也称常变量;例如:const float PI=3.14159;const int Number_of_Student=100;常变量必须也只能在说明时进行初始化;常变量初始化之后,不允许再被赋值;常变量必须先说明后使用;常变量存储在数据区,并且可以按地址访问,编译时系统对常变
15、量进行类型检查。C+建议使用常变量,而尽量不使用字面常量。2.3.3结束2.1.7 变 量1 变量说明 2 变量赋初值 变量,在程序中是指可以改变值的量;变量必须用标识符进行标识,称为变量名;变量有类型之分,如整形变量、字符变量等;任何变量都必须先说明后使用;一是便于编译程序为变量分配空间,二是便于编译时进行语法检查;变量使用的第一步,是给变量赋初始值;ok1变量说明 在C+中,变量说明的一般格式为:存储类型数据类型 变量名1,变量名2,变量名n;下面是变量说明的几个例子:inti,j,k;/说明三个整型变量i,j,kfloatx,y,z;/说明三个实型变量x,y,zcharc1,c2;/说明
16、两个字符型变量c1,c2doubledx;/说明一个双精度型变量dx变量说明结束2变量赋初值(1)变量说明时直接赋初值。例如:int a=3,b=4,c=5;float x=3.0;(2)用赋值语句赋初值。严格的说,只有前者可称赋初值例如:float x,e;x=3.5;e=2.71828;结束给变量赋初值称为初始化,有两种方法:2.2基本运算符对常量和变量进行运算是通过运算符来实现的.常量和变量通过运算符组成C+表达式,由表达式再组成C+语句.运算符是完成对常量和变量进行运算的符号.把参与运算的对象称为操作数.按照要求的操作数的个数,运算符分为单目(一元)运算符、双目(二元)运算符和三目(三
17、元)运算符。单目运算符只对一个操作数运算,如负号运算符“”等;双目运算符要求有两个操作数,如乘号运算符“*”等;三目运算符要求有三个操作数,三元运算符只有一个“?:”。1.算术运算符优先级运算符名称3+正,单目-负,单目5*乘,双目/除,双目%求余,双目6+加,双目-减,双目ok运算符重载:当两个操作数均为整数时,*和/重载为整乘和整除,结果为整数,除法运算后舍去小数取整。如:5/4/结果为1,整数当两个操作数均为整数,%定义为求余运算,也称求模运算,结果为两个整数相除后的余数。如果两个整数中有负数,则先用两数绝对值求余,最后结果的符号与被除数相同。例如6%3/结果为06%7/结果为67%6/
18、结果为1 C+中算术运算应注意数据溢出问题,即运算结果超出对应数据类型的表示范围。编译程序只会对除法运算时除数为0这种情况提示出错,而特别容易溢出的整数的加、减和乘法运算产生溢出的情况,系统不作为错误处理,程序将继续执行并产生错误的计算结果。因此,程序设计者必须在程序中解决检查并处理整数溢出问题。只要有一个操作数是实数,两个操作数均转换为double型,*和/重载为普通的乘和除,结果是实数:5/4.0/结果为1.25,实数2.关系运算符和逻辑运算符ok 关系运算符都是二元运算符,包括:(大于)、(不小于)、(小于)、(不小于)、=(等于)和!=(不等于)。关系运算符完成两个操作数大小的比较,结
19、果为逻辑值true(真)或false(假)。每种可比较大小的数据类型,都重载了关系运算符。不同类型,自动转换为同一类型后,采用对应关系运算符进行比较。在C+中这两个逻辑值与整数之间有一个对应关系,真对应1,假对应0;反过来,0对应假,非0整数对应真。所以关系运算结果可以作为整数参与算术运算、关系运算、逻辑运算及其他运算。2.关系运算符和逻辑运算符设有定义 floata=3.2;intb=5;则:3ab/结果是?根据右结合原则其运算过程如下:a5b3.23F,即0F即0优先级运算符名称语义2!逻辑非,单目操作数的值为真,则结果为假;12&逻辑与,双目当两个操作数全为真时,结果为真,否则为假;13
20、|逻辑或,双目两个操作数中有一个为真,则结果为真;逻辑运算符 逻辑运算符用来进行逻辑运算。其操作数和运算结果均为逻辑量。运算结果同样可以作为一个整数参与其他运算。由于逻辑值和整数之间的对应关系,也允许整型和字符型操作数进行逻辑运算:21&0/逻辑与,21与0,结果为假:021|0/逻辑或,21或0,结果为真:1!21/逻辑非,21的非,结果为假:0逻辑运算符3.位运算符(1)按位取反运算符“”(2)左移运算符“”(4)按位与运算符“&”(5)按位或运算符“|”(6)按位异或运算符“”okc+语言提供字位运算,它对操作数的各个位进行操作。(1)按位取反运算符“”将操作数的每个二进制位取反,即1变
21、为0,0变为1。例如,整数a的值为10011011,则a的值为01100100。(2)左移运算符“”运算一般格式为:a”与左移运算符类同,将左操作数向右移动右操作数指定的二进制位数,忽略移位后的小数部分,并在高位补0。一个整数右移n位相当于除以2的n次方,但比除法快。在VC+6.0中有符号数右移时高位补符号位,严格对应除法。以上三种单目运算不影响数据本身的值,而是只产生一个中间量,这个中间量被引用后即不再存在。(4)按位与运算符“&”将两个操作数的对应位逐一进行按位逻辑与运算。运算规则为:对应位均为1时,该位运算结果为1;否则为0。例如:a 01001101b 00001111a&b 0000
22、1101该运算可用来将整数的某些位置0,而保留所需要的位,上例保留了低四位。(5)按位或运算符“|”将两个操作数的对应位逐一进行按位逻辑或运算。运算规则为:只要有一个数对应位为1,该位运算结果即为1;两个数对应位均为0,该位结果为0。例如:a 01001101b 00001111a|b 01001111该运算符可用来将整数的某些位置1。上例高四位不变,低四位全1。(6)按位异或运算符“”将两个操作数的对应位逐一进行按位异或运算。运算规则为:当对应位的值不同时,该位运算结果为1,否则为0。例如:a 01001101b 00001111a b 01000010该运算符可用来将一个整数的某些位取反,
23、或将整型变量的值置0(将整型变量与自身按位异或)。上例低四位取反,高四位不变。需要说明的一点是,以上例子中的整数都只取了低8位一个字节。4.赋值运算符ok 将数据存放到相应存储单元中称为赋值,如果该单元中已有值,赋值操作以新值取代旧值;从某个存储单元中取出数据使用,称为引用,引用不影响单元中的值,即一个量可以多次引用。常量只能引用,不能赋值。赋值通过赋值运算符“=”来完成,其意义是将赋值号右边的值送到左边变量所对应的单元中。赋值号不是等号,它具有方向性。C+将变量名代表的单元称为“左值”,而将变量的值称为“右值”。左值必须是内存中一个可以访问且可以合法修改的对象,因此只能是变量名,而不能是常量
24、或表达式。4.赋值运算符例如下面的赋值运算是错误的:3.1415926=pi;/左值不能是常数x+y=z;/左值不能是表达式constintN=30;N=40;/左值不能是常变量5.自增自减运算运算分前置和后置两种,前置是先增减后引用,即先对变量自加或自减,用新的值参与其他运算;后置则是先引用后增减,即用变量原来的值参与其他运算,然后再对变量进行自加或自减,例如:int i=5,j=5,m,n;m=i+;/后置;相当于m=i;i=i+1;/结果:i的值为6,m的值为5;n=+j;/前置;相当于j=j+1;n=j;/结果:j的值为6,n的值为6;意义:使变量当前值加1或减1,再赋给该变量。要求:
25、操作数只能是变量,不能是常量或表达式;ok6.SIZEOF()运算符用于计算一个操作数类型或一个变量的字节数。一般格式为:sizeof(数据类型)或 sizeof(变量名)例如:sizeof(int)值为4sizeof(float)值为4doublex;sizeof(x)值为8结束2.2.2表达式1算术表达式2关系表达式3逻辑表达式和逻辑表达式求值的优化4赋值表达式与复合赋值表达式5逗号表达式ok1.算术表达式使用时注意:1、表达式中每个变量都有确定的值时才能进行表达式求值;2、考虑到算术运算溢出和精度问题,应避免:(1)两个很接近的数直接相减;(2)除数是一个很小的数;(3)整数的连续乘运算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言 基础
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。