编译原理之算符优先分析的两个有趣小栗子

本文通过两个小例子探讨了算符优先分析在编译原理中的应用。首先,解释了为何在表达式中,人们通常直觉上会先计算括号内的部分,但实际上,根据运算符的优先级和结合性,应先计算同级运算符中最左边的。接着,文章提出了第二个例子,说明一个表达式的名称由最后一个运算符决定,如含有逗号和赋值的表达式分别称为逗号运算表达式和赋值运算表达式。
摘要由CSDN通过智能技术生成

今天上编译原理课时,老师讲了些非常有意思的知识,总结一下,也分享给大家~

先抛出一个小栗子

这里写图片描述

大家思考一下,i + i - i * (i + i)这个运算表达式先算哪部分?

此处思考三分钟。。。。
这里写图片描述

我相信,大多数人和博主一样第一感觉先算括号 里面的,但是理智又告诉我,应该先算左边第一个加号更合适。但是,博主却不能清晰的说出原因。。,,ԾㅂԾ,,

那么我们先来分析,为什么第一感觉会是先算括号里面的呢?

众同学答道:“括号的优先级最高,所以先算括号里面的。”

看着好像。。没什么毛病。。

但是,博主很遗憾的宣布,第一个先运算的是左边的加号。。

为什么呢??(・∀・(・∀・(・∀・*)

事实是这样的:运算符优先级的比较只在相邻的op(运算符)之间进行比较,而总所周知,根据自左向右的结合性,我们再来看上面的小栗子i + i - i * (i + i)里面,首先比较+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值