求助关于一题逗号表达式的C语言试题,谢谢

假设所以变量均为整型,则表达式(a=3,b=6,++a,b++,a+b);的值是多少?答案是:11疑问一:我个人觉得是10,因为b++是先使用再自加,++a先自加再使用咯... 假设所以变量均为整型,则表达式(a=3,b=6,++a,b++,a+b);的值是多少?
答案是:11
疑问一:我个人觉得是10,因为b++是先使用再自加,++a先自加再使用咯?那么就是a+b(a=4,b=6)得出10后,b再自加为7咯?
如果按答案是等于11,那么就是说题中的“++a,b++,”改为“++a,++b,”或者“a++,b++,”答案都是11,没影响??
疑问二:逗号符的优先级不是最低的吗?那怎么能够使表达式从左向右运算呢?
那么就是请大家一步步详细讲解给我听,万分感谢
请好心的大家,因为我自加没有按C语言程序软件,所以希望最好是帮我在C程序环境下对你运行下看看答案到底是什么?用实践检验真理,谢谢大家
展开
 我来答
328873248
2011-01-06 · TA获得超过181个赞
知道答主
回答量:22
采纳率:0%
帮助的人:23.2万
展开全部

我运行了,给你截张图

其实按你的理解应该是(a=3,b=6,(++a)+(b++)),这个时候才考虑先加后加的问题,这个时候才是10,但题干先++a,b++,然后再a+b,这是有区别的,要多领会。

逗号它的优先级最低,代表  a=3,b=3即(a=3),(b=3),也就是说先进行其他运算,最后再进行逗号运算,而从左到右是规定的,与它的优先级是否低无关。

hensen_hhc
2011-01-06 · TA获得超过271个赞
知道答主
回答量:174
采纳率:0%
帮助的人:173万
展开全部
首先,在这个表达式中逗号优先级最低,按照从左往右的顺序运算。可以将表达式表示为
(((((a=3),(b=6)),(++a)),(b++)),(a+b)),这样是多个逗号运算符从左往有运算的顺序!对吧?
其实你不明白的就是逗号,逗号表达式中,每个逗号分隔的是一个个计算单位,这个表达式是由多个计算单位构成的。
整个表达式的执行过程是:
a = 3;
b = 6;
++a;//a=4
b++;//b在遇到逗号后就认为本次计算单位已经结束,所以自加b=7
a+b;//等于11,整个表达式运算结束,表达式的值为11

同样对于
b=6;
b++;//这种情况b遇到分号,认为计算单位结束,再++。
所以后++并不是只遇到分号才++,而是判断计算单位结束才++。不知道我说的是不是能够让你满意。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
懒懒1204
2011-01-07
知道答主
回答量:75
采纳率:0%
帮助的人:29.6万
展开全部
#include <iostream>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
侯君兆灿
互联网爱好者

2019-07-11 · 随时了解一些互联网详情
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:944万
展开全部
11;b后自加后,值加一,只有在一个表达式里前自加和后自加才有区别。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
栾聪全豫
2019-05-24 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:721万
展开全部
看来你真是个不折不扣的外行了,是不是学文科的想考计算机啊?i++是先取值再加1,如果出现在一个表达式中,从左至右起碰到的第一个"i++"取i的值,取完后i值自增1,此后i值就是i+1了,如果再碰到第二个"i++",那么这里取i+1,因为上一次取值i就增1了,这次取毕后i再增1变为i+2,依此类推。而++i则是在取值之前将原值加1,其他没有什么区别。再看你的题(a=3,b=6,++a,b++,a+b),++a之后a=4,b++后b=7。不知道你怎么想的,可能你认为b++是取后再加1,但是b++这里并没有取b的值所以暂时不加1待下次取了再加,呵呵,你把计算机想得太人性化了。单独存在的a++与++a没有任何区别,只有在表达式中才区分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佘琇逯侬
2020-04-06 · TA获得超过3.3万个赞
知道大有可为答主
回答量:1.2万
采纳率:29%
帮助的人:766万
展开全部
如果a++单独使用就和++a一样,因为无论是a++还是++a都可写出a=a+1,如果有:b=a++;则b的值为a,a的值为a+1。所以,上题可化简为(a=3,b=6,a=a+1,b=b+1,a+b),结果为11.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式