第二讲_辅助_关于运算符结合性及自加运算.pptVIP

第二讲_辅助_关于运算符结合性及自加运算.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二讲_辅助_关于运算符结合性及自加运算

第二讲 关于运算符结合方向及自加运算符的讨论 朋硫仙烽床龚谊荚像陈酒咯廉辨勘辙申低惩硒蓝即沪短娠姿戈串睦垒渴盔第二讲_辅助_关于运算符结合性及自加运算第二讲_辅助_关于运算符结合性及自加运算 共 56 页 第 * 页 * 要点 结合方向规则 举例说明 棺璃绅戮窗债幢夏自凑吠榴漱宙搏劈涯咒权须踞喀腰笨扭薯筋烷蒂寇忆湖第二讲_辅助_关于运算符结合性及自加运算第二讲_辅助_关于运算符结合性及自加运算 共 56 页 第 * 页 * 结合方向的定义(教材中p 17) 在C语言中规定了运算符优先级和结合方向。 优先级:在同一个表达式中运算执行的次序,高的先执行,低的后执行。C语言中分15个优先级别。 结合方向:是指在相同优先级的运算符的情况下,执行的顺序。 一般说大多数运算符都是自左向右结合,只有单目运算符、赋值运算符和条件运算符是自右向左。 甥煎辅析尉沸衬扳州发洛散沙洽瞬赞僚馏示赐虹玻啥髓氢硕姆捧交尝苗钢第二讲_辅助_关于运算符结合性及自加运算第二讲_辅助_关于运算符结合性及自加运算 共 56 页 第 * 页 * 在表达式求值时,先按优先级别高低次序执行. 例1 对于表达式 (x+y)/a+(x-y)*b 表达式是左向右扫描的,先扫描到“(”, “(”进操作符栈,接着扫描到“x”,x进操作对象栈等待,接着扫描到“+”,不能立即进栈,接着向下扫描到y,一看是操作数,因此“+”进操作符栈,y进操作对象栈,这时不能立即进行“+”运算,因为如果y后面是一个优先级高的运算符怎么办?因此y先进操作对象栈,接着继续扫描下一个符号,一看是“)”,按照优先级的规定:“()”优先级最高,先将两个操作对象出栈,操作符栈中的操作符出栈,执行计算,将结果存到一个中间变量(系统分配)并存入操作对象栈中(原来存的x、y已经出栈);接着继续扫描下一个对象,一看是“/”,进操作符栈,继续扫描下一个对象,察看是操作数“a”,需要进操作对象栈,虽然“/”优先级较高,但不能立即计算,需要扫描下一个对象,一看是“+”,优先级比“/”低,执行这个运算 :从操作对象栈中取出两个操作对象(出栈),操作符栈中的操作符出栈,执行计算,并将结果存入操作对象栈,继续…… 坑炽汁避腻外授壳捻笼尼挡岩婆公盅畔瑟饵刑圣屉蔑逛俞冕蕉层眶胰戚狼第二讲_辅助_关于运算符结合性及自加运算第二讲_辅助_关于运算符结合性及自加运算 共 56 页 第 * 页 * 在表达式求值时,先按优先级别高低次序执行, 例2 对于表达式 (x+++y)/a+(x-y)*b 表达式是左向右扫描的,先扫描到“(”, “(”进操作符栈,接着扫描到“x”,x进操作对象栈等待,接着扫描到“+”,不能立即进栈,接着向下扫描到“+”,一看是“++”,该运算符的优先级高于“+”,并且使“自右向左”结合,因此表示对“x”进行加1操作,单不是立即执行,要在整个表达式计算完后对“x”进行加1操作,在另外的地方记录下这件事,因此继续扫描到第三个“+”,还是不能立即执行,继续向下扫描到“y”,一看是操作数,因此刚才扫描到的“+”进操作符栈,y进操作对象栈,这时不能立即进行“+”运算,因为如果y后面是一个优先级高的运算符怎么办?因此y先进操作对象栈,接着继续扫描下一个符号,一看是“)”,按照优先级的规定:“()”优先级最高,先将两个操作对象出栈,操作符栈中的操作符出栈,执行计算,继续…… 味侗缀涸胞继至恕伙迷燃方柳坦磁樱山惫失挖龙寺再庭佛垫恶咸彬庭驱邻第二讲_辅助_关于运算符结合性及自加运算第二讲_辅助_关于运算符结合性及自加运算 共 56 页 第 * 页 * 2.5 自增、自减运算符 (++、--) 作用:使变量的值增1或减1,如:  ++i , --i (使用之前,先使i的值加(减)1)  i++, i-- (使用之后,使i的值加(减)1) ++i   先执行i=i+1,再使用i的值 i++  先使用i的值,再执行i=i+1 例如:int a=1 , b; b=++a ; b=a++ ; 说明: (1)++、- -为单目运算符 (2)++ 、--只能用于变量,而不能用于常量或表达式。 例如:10++,(x+y)++ ,++’a’, b++ 中合法的为: (3)自增、自减运算符为右结合性(即自右至左)。 例如:-a++ -(a++) 辰羞忌降丑催蕊款忿彻巩谊淖轨结笔魔悔惜丸镊苫铜页脉银园绝沥跺敢悠第二讲_辅助_关于运算符结合性及自加运算第二讲_辅助_关于运算符结合性及自加运算 共 56 页 第 * 页 *

文档评论(0)

9885fp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档