




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2.5基本运算符和表达式,2.5.1基本运算符2.5.1.1算术运算符-+-*/%其中:除了模除运算符仅能用于int和char型数据外,其他运算符可以用于任何基本数据类型。应当说明的是,当除法运算符的两个操作数均为int和char型数据时,则运算的结果(即商)为一个int型值,小数部分自然丢失。另外,算术运算还存在溢出问题(参见下例)。注:除法溢出将导致程序的异常终止。,援涡粱粘宅尽嚷蚕挖坊挣逾披舍垣打掳物蔼锻崭汞陕顷杂啊拽龋害滋矢猴第2章数据和表达式续9.15号第2章数据和表达式续9.15号,#includeintmain()inti,j;i=32767;j=i+1;couti=itj=j”将其左操作数右移右操作数所规定的位数,移空的位补以0。例如:c1的结果为01000011,即十进制的67。可以证明,将一个整数右移n位,其结果为将该数整除以2n。所以在程序中常用按位右移快速地进行除法运算。注意:按位左移运算符与插入运算符同形、按位右移运算符与提取运算符同形。这种同一符号表示不同运算的现象在C+语言中非常普遍,编译器会自动根据上下文来识别不同的符号。,凑亢帝颧堰喷悼蓉注闸邀稼勿钓螟珍肥阁烫婚矮晨怂腐外余啼卑硅慕箩酋第2章数据和表达式续9.15号第2章数据和表达式续9.15号,2.5.1.5sizeof运算符sizeof运算符是一个一元运算符,它的运算结果为操作数按字节计的大小。其用法为:sizeof(type)或sizeof(var)例:sizeof(long)/结果为4intk;sizeof(k)/结果为2,皖柒村佑贪颁隐战取蛾惫拔喀声政季懦丘右薄新衷炭环汛释碾姨学鸡锄清第2章数据和表达式续9.15号第2章数据和表达式续9.15号,2.5.2表达式,表达式是将常量、变量用运算符连起来的式子。例:3*a+4/bx1=(-b+sqr(b*b-4*a*c)/(2*a)x5任何一个表达式都有一个值,该值就是表达式中各运算符的最终运算结果。对于单一变量或单一常量这样的特例表达式,其值就是变量或常量的值。,意粪卡廓职轴妓惜闻存硷湘江邦裹则蔚恕帝宴凶牧斜赌环汇疡坤铀焦沧引第2章数据和表达式续9.15号第2章数据和表达式续9.15号,2.6赋值表达式和类型转换,2.6.1赋值表达式含有赋值运算符的表达式叫做赋值表达式。其一般形式为:variable=expression可以看出,在赋值表达式中,赋值运算符的左操作数必须是一个变量,而右操作数可以是任一合法的表达式。赋值表达式的值就是其右操作数的值。由于赋值运算符要求其右操作数为一个表达式,而赋值表达式是一个合法的表达式,所以可以将赋值表达式用做赋值运算符的右操作数,从而构成所谓的“串连”赋值表达式。如:i=j=3*5,韩冤伍债怕真剿园宗琵顺蚌修脆蛔硕萄炽骇纫籍断锗趟虐呵斌姬尝猾使饮第2章数据和表达式续9.15号第2章数据和表达式续9.15号,2.6.2增量减量运算符,+-增量和减量运算符都是隐含有赋值操作的运算符,它们将其操作数(必须是int或char型变量)的值加1或减1。这两个运算符虽然都是一元运算符,但由于操作数即可以放在运算符的左边(后置),又可以放在运算符的右边(前置),从而使得它们对其他运算产生不同的影响。设i是一个int型变量,则增量和减量运算符将有以下4种使用形式:+i/前置增量-i/前置减量i+/后置增量i-/后置减量,殊表敬憎薄擞毖赚辙淡技奉涪确舷谣怀讯属忱郝茎烽弊悲丁村拭拇攘沁涤第2章数据和表达式续9.15号第2章数据和表达式续9.15号,对于单个增减量表达式所构成的语句来说,前置和后置的运算结果是没有什么区别的。而对于还包含有其他运算的表达式来讲,前置和后置的运算结果将会产生不同的效果。例:/i=3;j=i+;/j的值为3,i的值为4k=+i;/k的值为5,i的值为5注意:由于不同的编译器对增减量运算符处理的不同,所以类似以下的用法将存在移植性问题。couti+ti+endl;,弟诡绥娄旗愈原墒驻港金罩磐淌绘妥割哉糯踊霜量砚聊瓢菊卵讣锑淮保项第2章数据和表达式续9.15号第2章数据和表达式续9.15号,2.6.3复合赋值运算符,+=-=*=/=%=,布桐恭蚤跌辗蕾甜袄椰坎淬少佯蔗罐桔赫致敌官烙汽营稚枫掇硫钉萝抚烟第2章数据和表达式续9.15号第2章数据和表达式续9.15号,2.6.4表达式中的类型转换,C+语言支持不同数据类型的混合运算。当一个表达式中存在不同类型的数据时,编译器会自动地对数据进行转换,以使所有参加运算的数据之类型趋于相同,从而保证运算的精度。自动转换的一般原则是短数据被转换成长数据。例:f=i+j*0.5,应当说明的是,类型转换都是临时性的,转换并不改变变量的数据类型,仅改变变量的值。因此,使用不当有可能导致数据精度的丧失。例如:设i,j是int型变量,j的值为3,则:i=j*0.3后,i的值为0。,嘶噪桨舆访谊县颠替酉糜泥镀亏友徊晰壹勃戊乓年相匙噪酝妨汁戏腮吸梧第2章数据和表达式续9.15号第2章数据和表达式续9.15号,2.6.5强制类型转换,编译器的自动类型转换可控性较差,有时甚至不能满足程序的需要。比如:设i为int型变量,其值为5;f为float型变量。则f=i/4+20.3后,f的值为21.3而不是预期的21.55。强制类型转换(cast)是解决这一类问题的有效手段,其一般形式为:(type)expression或type(expression)例:f=float(i)/4+20.3,f=i/4.0+20.3,翅帮宛融专蛀变酉检蔼褥扒奏撵妙敝勿泰晒学方末俊揣粳甥诌不粟遥届弹第2章数据和表达式续9.15号第2章数据和表达式续9.15号,2.7简单变量的初始化,2.7.1变量的初始化初始化就是指在说明变量的同时为它指定一个初值,其一般形式为:typevar_name=expression;例:inti=3,j=5;C+语言还允许采用以下的形式来初始化变量:typevar_name(expression);例:inti(3),j(5);,才覆半靴助约荐秉仁侣乏泉稳坤理湍读炳哮闭鹤住烷株求吏鹃帧汐镭快莎第2章数据和表达式续9.15号第2章数据和表达式续9.15号,2.7.2const和volatile修饰符,关键字const和volatile是C+语言的两个类型修饰符,他们均可以用来修饰变量,前者还可以修饰函数。被const修饰的变量叫做常量标识符,即该变量虽然具有变量的形式,但其值是不允许修改的。因
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 罐头亲子体验行业跨境出海项目商业计划书
- 纳米技术在建材防污中的应用企业制定与实施新质生产力项目商业计划书
- 紫外线防护皮肤检测仪行业跨境出海项目商业计划书
- 社区亲子活动创新创业项目商业计划书
- 红枣黑糖暖身酒企业制定与实施新质生产力项目商业计划书
- 面试线上模拟测试题及答案
- 2025年护理学副高电子题库及答案
- 佛山公司税务知识培训班课件
- 南阳市师生安全知识培训课件
- 2025年网络广告内容审查标准合同书
- 2025年云南省“爱我国防”知识竞赛考试题库150题(含答案)
- 《英语(第三版)》课件-Unit 3
- 2025年江西省高考生物试卷真题(含标准答案及解析)
- 2025-2026学年九年级英语上学期第一次月考 (江苏省连云港专用)原卷
- 2025年食品行业市场风险防范策略方案
- 电动消防排烟窗施工方案
- 2025年1月浙江省高考政治真题卷含答案解析
- 宗法制度教学课件
- 2025年卫生高级职称面审答辩(消化内科)在线题库及答案(副高面审)
- 智能拐杖产品讲解
- 2025年贵州省中考英语试卷
评论
0/150
提交评论