版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章基本数据类型与基本运算,包含简单计算的C+程序,基本类型及其派生类型,说明语句,基本运算符,3.1包含简单计算的C+程序,一、程序实例:求和,#includevoidmain()inta,b,sum;/说明三个整型变量a=43;b=37;/赋值语句sum=a+b;/“+”、“=”是C+的算术运算符cout“Thesumis”sum;coutendl;,P55,3.1包含简单计算的C+程序,二、程序实例:计算圆面积,#includevoidmain()constfloatpai=3.14;/说明浮点型常量floatradius;cout“Enterradius:”;cinradius;fl
2、oatarea=pai*radius*radius;/说明后即被赋值cout“nTheareaofcircleis”areaendl;,P56,3.2基本类型及其派生类型,一、C+的数据类型,C+程序中的数据类型以如下不同类型的形式出现:,1.基本类型,2.用户定义类型,3.导出类型,3.2基本类型及其派生类型,二、C+的基本类型,2.float型,3.char型,4.void型,1.int型,3.2基本类型及其派生类型,2.float型,3.char型,4.void型说明,1.int型,void指没有数值的数据类型。没有任何返回值的函数应被说明为void类型。如:voidfn();在函数体内
3、,可以使用return语句,但return之后不能有任何表达式(C+对此检查非常严格),void也会出现在函数体说明中。如:intg(void);此语句说明g()是一个不需要任何入口参数的函数,并且返回一个int类型的值。C+中,也可以写成:intg();,不能把数据说明成void型,因为变量说明成没有任何值是没有意义的。,void型可以说明指针,void指针在C+中是一种普通指针类型(传统的C中被当成字符指针),如void*ptr;指针ptr可以被赋给指向任何类型的指针。,3.2基本类型及其派生类型,三、基本类型的派生类型,基本类型经过简单的字长及范围放大或缩小,就形成了基本类型的简单派生类
4、型。派生类型的说明符由int、float、char前面加上类型修饰符组成。类型修饰符包括:,shortlongsignedunsingeddouble,P61,3.2基本类型及其派生类型,四、enum类型,enum类型又称枚举类型,它是一种由用户参与定义的类型。其格式为:,enum;,enumcolorred,blue,green,white;,例,3.2基本类型及其派生类型,四、enum类型,一个enum类型实际上是int型的一个子集,其每一个值代表一个整数。,说明,几个枚举值全未赋值时,它们自左至右分别与整数0、1、n-1相对应。,3.2基本类型及其派生类型,四、enum类型,若第i个枚举
5、值赋常量值为整数m,则未赋值的后续枚举值分别与整数m+1、m+2对应,直到下一个赋了值的枚举值或结束。,说明,enumcolorred=100,blue=200,green,white=400;,3.2基本类型及其派生类型,四、enum类型,枚举类型的说明也可作为成组说明若干整形符号常量的方法。,说明,C+的enum类型只有一个赋值操作,不能进行任何算术运算,也不能通过强制类型转换而直接给enum类型赋整数值。,3.2基本类型及其派生类型,四、enum类型,定义了枚举类型之后,枚举变量的取值只能取枚举类型定义时规定的值。,说明,colorpaint=green;,colorpaint=200;
6、/error,3.3说明语句,一、语句,2.表达式语句,3.控制语句,4.复合语句和空语句,1.说明语句,3.3说明语句,一、语句,2.表达式语句,3.控制语句,4.复合语句和空语句,1.说明语句,3.3说明语句,一、语句,2.表达式语句,3.控制语句,4.复合语句和空语句,1.说明语句,3.3说明语句,一、语句,2.表达式语句,3.控制语句,4.复合语句和空语句,1.说明语句,3.3说明语句,一、语句,2.表达式语句,3.控制语句,4.复合语句和空语句,1.说明语句,3.3说明语句,二、常量和变量,常量(constant):在程序执行过程中其值不能改变的数据称为常量。,变量(variable
7、):在程序执行过程中其值可以改变的数据称为变量。,3.3说明语句,三、常量说明,const=;,例如:constintN=2000;constfloatpai=3.14159;,3.3说明语句,三、常量说明,例如:constfloatpai;pai=3.14159;/error,说明,定义成const后的常量,程序中对其只能读不能修改,由于不可修改,所以常量定义时必须初始化。,3.3说明语句,三、常量说明,例如:constintnumber=max(8,3);/error,说明,常量名不能放在赋值语句的左边。,补充:关于#define,在编译预处理命令中使用宏替换定义符号常量的方法与用cons
8、t方式定义的方法有所不同:#definepai3.14159;宏替换是在编译时把程序中出现的所有标识符pai都用3.14159来替换,仅仅是两个字符串的代换,并不是一个具有一定类型的常量名,随后的编译无法发现由它引起的数据类型误用的错误。,3.3说明语句,四、变量说明,;,例如:intsize,high,temp=37;staticlongsum;autofloatt=0.5;,3.3说明语句,四、变量说明,说明,在同一语句里不能混合定义不同类型的变量。,;,3.3说明语句,四、变量说明,说明,类型名和类型定义不可缺省,用以指定数据类型。,;,3.3说明语句,四、变量说明,1.全局变量和局部变
9、量,全局变量:其说明语句不在任何一个类定义、函数定义和复合语句之内的变量。即包含在某一对“”和“”之外的变量。占用内存的数据区,在程序运行过程中位置不变。,3.3说明语句,四、变量说明,1.全局变量和局部变量,局部变量:其说明语句在某一类定义、函数定义和复合语句之内的变量。即包含在某一对“”和“”之内,所占空间为程序运行时设置的临时工作区,以堆栈的形式允许反复占用和释放。,3.3说明语句,四、变量说明,2.生存期与作用域,生存期:变量a的生存期是指从a被说明且分配了内存开始,直到该说明语句失去效力,相应内存被释放为止,称为该变量的生存期。,全局变量的生存期,局部变量的生存期,3.3说明语句,四
10、、变量说明,2.生存期与作用域,作用域:变量a的作用域是指a可以代表该变量的范围。,3.3说明语句,四、变量说明,3.变量的存储类型,auto变量,register变量,static变量,extern变量,3.3说明语句,四、变量说明,3.变量的存储类型,auto变量,register变量,static变量,静态变量和全局变量一样,在内存数据区分配空间,在整个程序运行中不释放。,说明,静态变量如未赋初值,系统将自动为其赋默认初值0(NULL)。,静态变量的说明语句在程序执行过程中多次运行或多次被同样说明时,其第一次称为定义性说明,进行内存分配和赋初值操作,在以后的重复说明时仅维持原状,不再做赋
11、初值的操作。,extern变量,/example1.cpp#includeintn;voidfn();voidmain()n=20;coutnendl;fn();,/example2.cpp#includestaticintn;/全局静态变量voidfn()n+;coutnendl;,运行结果:201,3.3说明语句,全局静态变量使该变量成为定义该变量的源文件所独享。,3.3说明语句,四、变量说明,3.变量的存储类型,auto变量,register变量,static变量,extern变量,一般用于由多个文件组成的程序中,避免重复分配内存。带extern的变量是变量声明,不是变量定义。,说明,如
12、果共同变量一次都没有定义,或者在各个文件中分别定义,造成定义多次,或者声明的类型不一致,都会造成直接或间接的错误。例如:,/file1.cppinta=5;intb=6;externintc;,/file2.cppinta;/error:多次定义externdoubleb;/error:类型不一致externintc;/error:无定义,3.3说明语句,例1,/file1.cpp#includevoidfn1();voidfn2();intn;voidmain()n=3;fn1();coutnendl;voidfn1()fn2();,/file2.cppexternintn;/n由另一个源/
13、文件定义voidfn2()n=8;/使用n,运行结果:8,3.3说明语句,例2,3.3说明语句,五、类型说明,作用:由用户为一个已定义的类型赋予一个新的类型名。,typedef,typedef;,typedefintid_number;,typedeffloattemprature;,例,测试题,面向对象程序设计将数据与放在一起,做为一个相互依存、不可分割的整体来处理。,A对数据的操作,B信息,C数据隐藏,D数据抽象,A,2面向对象程序设计优于传统的结构化程序设计,其优越性主要表现在,它有希望解决软件工程的两个主要问题:软件复杂性控制和。,A精化已有的代码,B编写可重用代码,C共享代码,D软件
14、生产率的提高,D,3C+对C语言作了很多改进,下列描述中使得C语言发生了质变,即从面向过程变成了面向对象。,A增加了一些新的运算符,B允许函数重载,并允许设置默认参数,C规定了函数说明必须用原型,D引进了类和对象的概念,D,4在C语言中合法的字符型常量是。,A“A”,Bt,C65,DA,5下列变量名中是合法的。,ACHINA,Bbyte-size,Cdouble,DA+a,A,3.4基本运算符,一、运算符和表达式的概念,单目运算:,双目运算:,三目运算:,多目运算:,3.4基本运算符,二、赋值运算,1.赋值运算是一种双目运算,其形式为:,变量名=表达式,赋值运算的操作是:计算表达式的值把该值赋
15、给左端的变量,例如:a=b+c*a,3.4基本运算符,2.赋值缩写,即复合赋值运算,当一变量既出现在表达式的左边,又出现在表达式的右边时,可以缩写。,二、赋值运算,3.4基本运算符,三、算术运算,1.增量和减量,3.4基本运算符,1.增量和减量,inta=3;intb=+a;/相当于a=a+1;b=a;couta“”bendl;intc=a+;/相当于c=a;a=a+1;couta“”cendl;,例1,输出结果:4454,三、算术运算,3.4基本运算符,1.增量和减量,例2,输出结果:2212,inta=3;intb=a;/相当于a=a-1;b=a;couta“”bendl;intc=a;/
16、相当于c=a;a=a-1;couta“”cendl;,三、算术运算,3.4基本运算符,1.增量和减量,说明,由于增量与减量操作包含有赋值操作,所以操作数不能是常量。例如:3+;/error,增量与减量操作符是两个+或-的一个整体,中间不能有空格。如果有多于两个+或-连写的情况,则编译首先识别前面两个+或-为增量或减量操作符。,三、算术运算,3.4基本运算符,1.增量和减量,inta=5,b=5,c=5;,例3,三、算术运算,a+=b+c+,3.4基本运算符,2.类型转换,两个运算分量应为同一类型,如果不同,应遵循类型转换原则,即由“短”类型向“长”类型转换。例如:,inta,b;floatx,
17、y;x=b*a+y;,三、算术运算,3.4基本运算符,四、关系运算,1.运算符,比较(),大于(),小于(),大于等于(),小于等于(),不等于(!),3.4基本运算符,四、关系运算,2.比较运算符(),比较()用于测试给定的两个操作数是否相等,因此产生的结果是比较的结果,即0(false)或1(true)。,x=somevalue;if(x=9)cout“xisnot0n”;,3.4基本运算符,四、关系运算,3.不等于运算符(!),if(x!=9)cout2)/语句,例1,3.4基本运算符,补充:短路表达式,原理2:若多个表达式用|连接,则一个真表达式将使整个连接都为真。,if(temp80
18、)/语句,例2,3.4基本运算符,六、位运算,位运算是对整型数的二进制表示的每一位进行运算,包括:,例,cout(ab?a:b)endl;不能用ifelse简单的替代,3.4基本运算符,八、逗号运算符,,(表达式2),(表达式n),inta,b,c;a=b,b=a+2,c=b+3;,说明1,C+顺序计算各个表达式的值,a=1;b=a+2;c=b+3;,3.4基本运算符,八、逗号运算符,,(表达式2),(表达式n),inta,b,c,d;d=(a=1,b=a+2,c=b+3);coutdendl;,说明2,逗号表达式是有值的,其值为第n个表达式的值。,输出为:6,3.4基本运算符,八、逗号运算符,,(表达式2),(表达式n),if(t=s,ab)s=aelses=b;,说明3,逗号表达式还可以应用于语句中。,for(i=0,j=1;ij;i+,j-),3.4基本运算符,九、字长提取符,格式:sizeof(),返回值:某数据在系统内分配的内存空间,#includevoidmain()intn;shorts;longl;unsignedintu1;unsignedshortintu2;unsignedlongintu3;floatf;doubled;charc;,例,编写一个程序求各种类型数据的存储长度。,cout“整型:”8*sizeof(n)endl;cout“短整型:”8*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年公务员(国考)试题预测试卷及参考答案详解【新】
- 2024-2025学年度泉州职业技术大学《形势与政策》期末考试考前冲刺练习试题及参考答案详解(完整版)
- 急腹症的病情评估与分级
- 药物管理与护理实践
- 供应商考核报告确认函7篇范文
- 2024-2025学年度园林绿化作业人员试题含答案详解【考试直接用】
- 2024-2025学年度全国统考教师资格考试《教育教学知识与能力(小学)》通关题库附答案详解(研优卷)
- 2024-2025学年医师定期考核考前冲刺试卷含答案详解【轻巧夺冠】
- 2024-2025学年度医师定期考核考前冲刺练习试题及参考答案详解【预热题】
- 2024-2025学年度滁州城市职业学院单招《数学》通关考试题库附答案详解AB卷
- 2025年中学生守则及中学生日常行为规范
- DB13∕T 5354-2021 中小型线状水利工程地质勘察规范
- (2025年标准)桉树购销协议书
- 教师企业锻炼方案及实践指导
- 轨道交通专业认知试题带答案
- 植物细胞壁的结构特点与生理功能
- 学生退学申请表
- 无菌技术操作消毒隔离常识
- 上海市幼儿园装备指南(试行)
- 气管插管术-课件
- 2024-2025学年上海市七年级期末数学试卷含答案
评论
0/150
提交评论