class02变量、常量和数据类型.ppt

上传人:tia****nde 文档编号:11495061 上传时间:2020-04-25 格式:PPT 页数:52 大小:503.50KB
返回 下载 相关 举报
class02变量、常量和数据类型.ppt_第1页
第1页 / 共52页
class02变量、常量和数据类型.ppt_第2页
第2页 / 共52页
class02变量、常量和数据类型.ppt_第3页
第3页 / 共52页
点击查看更多>>
资源描述
,面向对象程序设计与实践,第2课变量、常量和数据类型,主讲人:杨峰,Page1,本课主要内容,变量的概念变量类型变量的输入和输出变量的赋值与初始化常量和字面量,Page2,1变量的基本概念,1.1什么是变量?(重要的基础(o)!),对象(Object)一个对象是内存中的一片区域,这个对象对应一个类型(type)类型不同,这片区域的大小就不同一个有名字的对象就是变量(variable)存储在这个区域中的数就是变量的值(value)向程序中引入一个变量名称的语句称为变量的声明语句(declarationstatement),doublesrcVoltage;,该语句声明了一个名称为srcVoltage的变量,该语句同时为变量srcVoltage分配了8个字节的内存空间,这种声明称为变量定义(definition),intResistTotal=3;,变量定义时可以同时提供变量的初始值,该语句定义了一个名称为ResistTotal的整型变量,初始值为3。,Page3,1.2变量的3个特性,特性1:名字(Identifer,标识符)名字由字母,数字,下划线组成,只能由字母或下划线开头(不能用数字开头哦)C+的名字大小写敏感(Num和num是不同的两个名字),Page4,1.2变量的3个特性,名字建议的命名规范变量名要有描述性,能指明变量的作用变量的命名风格有2种全小写,下划线分隔,如line_total大小写混排,小写开头,不用下划线,如srcVoltage,resistTotal。下划线开头的变量名一般用于库函数,应用编程中变量名不要用下划线开头。变量名中最好不要用数字,也不要用单个的l做变量名,因为多数屏幕字体很难区分l和1.变量定义的位置:与K,则RED对应0,BLUE对应1,依此类推。也可以同时指定每个常量的值:(自动的咯(v)嗯?),enumescapesBELL=a,BACKSPACE=b,TAB=t,NEWLINE=n,VTAB=v,RETURN=r;(这种写的方式(o)!),也可以只给定第一个值:,enummonthsJAN=1,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC;(然后咧?),Page11,1变量的基本概念,类型(type)浮点型是二进制不能精确表示的数据类型浮点型分float,double,longdouble在内存中按IEEE754标准规定的二进制格式存放浮点数。float占4个字节,double8个字节,longdouble没有规定,只要大于等于double即可,VC中是12个字节float能表示的最小实数约10-7,double能表示的最小实数约10-15对于除0,或0/0,结果是NaN(NotaNumber),1变量的基本概念,类型(type)string类型为了方便操作字符串,C+在标准库中提供了一个字符串数据类型string(嘛(v)?),Page12,stringprompt=请输入电压值:;coutprompt;,Page13,1变量的基本概念,类型(type)typedef语句typedef语句声明一个新的类型名字typedef的作用是给一个已有的数据类型一个别名,通常是为了更简明和清晰,typedefunsignedcharBYTE;typedefunsignedshortWORD;typedeflonglongINT64;,Page14,1.2变量的3个特性,特性3:值(value)用赋值运算符=为变量赋值(assignvalue)赋值就是将值value保存到该变量对应的内存区域srcVoltage=3.0;,将数值3.0存放到srcVoltage所占用的8个字节的内存中。变量在赋值或初始化以前,存放在对应内存中的值是一个垃圾值。,赋值时要防止超范围的回绕。比如一个unsignedshort变量,可以表示065535的整数,如果给它赋值65537,超出范围就会回绕到1。,Page15,1.3变量的输入和输出,数值变量的输入输出C+的变量输出将变量的值输出到屏幕通过标准输出流cout实现,coutsrcVoltage;,将变量srcVoltage的值输出到屏幕上。为了更清楚的表示输出的含义,增加一些描述的字符串:,cout电压源电压=srcVoltager1;,从键盘读入变量r1的值。要求用户输入之前,应该给出提示:,coutr1r2r3;,从键盘读入3个数,第一个数赋给r1,第二个数赋给r2,第3个数赋给r3注意输入的3个数之间需要用空格分隔,不能用,分隔,还要注意输入的数值与变量类型要匹配。如本例中3个变量都是浮点数,所以应输入1.02.03.0这样的序列。如果3个变量都是整型,就应输入123这样的序列。如果不匹配,读入到变量的值就不正确。,Page17,1.3变量的输入和输出,数值变量的输入输出C+的变量输入,/显示用户输入的数据cout计算输入条件:endl;cout电压源电压=srcVoltageendl;cout电阻值r1=r1r2=r2r3=r3ten;cinunit;cout百位数是hundred十位数是ten个位数是unitendl;,实现逐位读入3位数的每一位字符并显示,Page25,1.3变量的输入和输出,字符变量的输入输出C+的字符输入方法二:用标准输入流的get()方法,cout请输入一个100999间的整数;cin.get(hundred);cin.get(ten);cin.get(unit);cout百位数是hundred十位数是ten个位数是unitendl;,Page26,1.3变量的输入和输出,字符变量的输入输出C的字符输出方法一:用printf()函数,转换说明符用%c方法二:用putchar()或_putch()函数,如putchar(hundred);或_putch(hundred);,Page27,1.3变量的输入和输出,字符变量的输入输出C的字符输入用getchar()函数,coutname;/标准输入流的流提取运算符以空格符为分隔,只能得到空格符前的字符串cout得到的name是nameendl;,由于cin以空格作为分隔符,所以当输入yangfeng时,只能读出yang到name中,Page30,1.3变量的输入和输出,字符串变量的输入输出C+的字符串输入方法二:用全局函数getline()读入一行内容,stringname;/C+的字符串cout请再次用拼音输入姓名(空格分隔);getline(cin,name);/用全局函数getline()获取字符串,可以输入一行内的所有内容,并可以使用C+的字符串cout得到的name是nameendl;,name中输入的就是完整的“yangfeng”,Page31,1.3变量的输入和输出,字符串变量的输入输出C+的字符串输入方法三:用标准输入流的getline()方法,charname50;/C风格的字符串cout请用拼音输入姓名(空格分隔);cin.getline(name,50);/用标准输入流的成员函数getline()获取字符串,可以输入一行内的所有内容,但只能使用C风格的字符串cout得到的name是nameradius;doubleperimeter=2*3.1415926*radius;doublearea=3.1415926*radius*radius;cout圆的半径为radiusendl;cout圆的周长为perimetert圆的面积为arearadius;doubleperimeter=2*PI*radius;doublearea=PI*radius*radius;cout圆的半径为radiusendl;cout圆的周长为perimetert圆的面积为areaendl;,Page40,2常量,常量的定义与变量相同,前面加const并通过定义式初始化常量的值如果需要修改这个值,只需要在程序首部改动这个值,重新编译即可常量的命名习惯采用全大写所有在程序中会出现的数值型的字面值都应该定义为常量(除了0和1),注意概念:教材2.3.5节中把这种量称为常变量,Page41,3字面量,在代码中出现的固定值就称为字面量或字面值(literal)字面量不是对象,不在内存中占据一个存储区域,而只是程序代码中的一串字符而已。常量constant是值初始化以后就不能改变的变量。常量是对象,有名字,类型和值,在内存中占用一定的区域(注意区别(o)!),注意概念:字面量就是教材中2.2节讲的常量,Page42,3字面量,因为C中没有const关键字,所以在C中constant(常量)就对应C+中的literal(字面量)搞什么呀这混乱ING,Page43,3.1字符字面量,字符字面量是以单引号包围的一个字符可打印字符,如a,A,#,%不可打印的字符加一个转义符(escape),如r回车,n换行,t跳格,反斜杠,“双引号,0ASCII码0空字符加转义符也可以表示所有的字符,格式为dddxhh3位八进制或2位16进制。如007表示响铃一声,也可写成x07,Page44,3.1字符字面量,显示字符对应的ASCII码charca=a;/换成任一一个字符如,A,r,n,t,007intna=ca;coutcatnatoctshowbasenathexnaendl;标准流输出操作符输出字符型会以字符的形式输出。由于字符型里保存的是字符对应的ASCII码,实际上就是一个字节的整型,为了显示对应的ASCII,把ca赋值给一个整型,就可以输出ca对应ASCII的数值了,Page45,3.2字符串字面量,字符串变量是以双引号“”包围的一串字符串中每一个字符的取值按照上面字符字面量的格式coutcoutBbCDn;看看什么效果。,Page46,3.3符号常量symbolconstant,C语言中没有const常量,要定义的值需要用符号常量。符号常量通过预编译指令define实现,#definePI3.1415926,虽然看起来效果相同,但是注意二者有根本的区别:符号常量在程序中出现的时候是一个字面量。符号常量在预编译时就用3.1415926替换了程序中所有的PI,所以编译器根本就看不到PI这个名称。,constdoublePI=3.1415926;,这个PI是double型,在内存中对应8个字节的空间,编译器可以看到这个名称,也可以根据它的类型进行数据类型检查。因此,在C+程序中尽量不使用符号常量。,Page47,3.4整型字面量,整型字面量缺省对应int型以0开头表示8进制,以0 x开头表示16进制否则就是10进制以U或u结尾表示无符号的整数,对应unsignedint型以L结尾表示长整型,超过正负20亿的L就是longlong型,UL对应unsignedlong型(不要使用小写的l结尾),Page48,3.5浮点型字面量,浮点型字面量有2种常见形式,第一种有小数点,第二种指数形式可用符号数字部分指数部分的形式表述符号表示正负;数字部分:如果后面没有指数部分,数字部分必须有小数点;如果后面有指数部分,可以没有小数点;小数点后有数字,小数点前只有一个0,这个0可以省略;指数部分:e开头,e后面只能是整数,可正可负。以f结尾表示float型。以L结尾表示longdouble型。啥也没有double型。,Page49,3字面量,总结字面量不是对象,没有名字,没有对应内存空间,也没有类型,只是代码中的一串字符而已编译器根据字面量提供的信息构造一个临时变量,这个临时变量的类型如何确定完全根据这串字符提供的信息确定单引号包围就是字符型,Page50,3字面量,双引号包围就是字符串型没有小数点也没有e就是整型整型后面带个U就是无符号整型,带个L就是长整型有小数点或e就是浮点型浮点型后面带个f就是float,带个L就是longdouble,啥也不带就是double,Page51,TheEnd,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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