关于c++的自增运算符计算……

a=3,b=3,c=5;那么a++*a+b+c*a*++b/4等于多少?后面的++b影响前面的b吗?为什么?我就是纠结到底是27还是28才来问的…这边一个告诉我27一个告... a=3,b=3, c=5;
那么
a++*a+b+c*a*++b/4
等于多少?
后面的++b影响前面的b吗?为什么?
我就是纠结到底是27还是28才来问的…这边一个告诉我27一个告诉我28所以是要怎样…我要崩溃了……
展开
 我来答
herewjz
2015-01-27 · TA获得超过396个赞
知道小有建树答主
回答量:130
采纳率:100%
帮助的人:116万
展开全部
表达式首先被从左向右压入栈,因此出栈顺序从右向左,计算是也是从右向左计算。

对于c*a*++b/4,(++b) == 4,因此其值为15

对于b+c*a*++b/4,此时b的值为4,与15相加为19

对a++*a+b+c*a*++b/4,(a++) == 3,a++*a == (3)*(3) == 9,与19相加为28

最终结果为28,不同编译器结果可能会有差异,这是因为实现运算表达式的存储的方式可能不同

通常的编译器例如vs(如果你使用C++写,别的编译器就不知道了,你可以看看数据结构的书),表达式应该是从左向右压栈,出栈顺序从右向左,因此先执行++b,在执行b。

我在vs2010下跑了一遍,打印结果是28,你可以在你的编译器上试一下嘛
TableDI
2024-07-18 广告
仅需3步!不写公式自动完成Excel vlookup表格匹配!Excel在线免,vlookup工具,点击16步自动完成表格匹配,无需手写公式,免费使用!... 点击进入详情页
本回答由TableDI提供
HoLee1997
2015-01-26 · TA获得超过1961个赞
知道大有可为答主
回答量:2557
采纳率:84%
帮助的人:949万
展开全部
a++*a+b+c*a*++b/4。。。格式好乱的说

3++*3+3+5*3*++3/4=4*3+3+5*3*4/4=12+15=27
易读性好差,错了别怪我。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式