假定 int a=1, b=2, c=0, 表达式: c=(a== --b||--a,a+b+1.0/2) 的值是 B 。

 我来答
Monkey家园
推荐于2018-04-05 · TA获得超过5636个赞
知道大有可为答主
回答量:1134
采纳率:60%
帮助的人:618万
展开全部
①结果为2

②int a=1,b=2,c=0;

c=(a==--b||--a,a+b+1.0/2);

我们先把其中所有运算符列出来,先低后高:
=
,
== ||
+
/
--
()

③按以上优先级顺序,从高优先级开始加括号:
c=(((a==(--b))||(--a)),((a+b)+(1.0/2)));

== || 这两个操作符优先级相等,就按从左到右的顺序加括号

我们分析一下,先进行 --b;
再进行 a==(b);
这时候成立,
|| 有一个断路特点 比如 1||(--a) 这时候 --a不会被执行.

逗号运算符的特点是,其最终值只是最后一个逗号表达式的值(但前面会按顺序去运算)。

④c=2.5; 但是c 是int型,所以自动隐式转化为2.

⑤还有什么不清楚加QQ 739227481
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式