c语言中 以下执行的结果为什么是2,0,3,-1?

#include<stdio.h>intmain(){inta,b,c;a=b=1;c=a++-1;printf("%d,%d,",a,c);c+=-a+++(++b||... #include <stdio.h>
int main()
{
int a,b,c;
a=b=1;
c=a++-1;
printf("%d,%d,",a,c);
c+=-a+++(++b||++c);
printf("%d,%d\n",a,c);
return 0;
}

求问以下执行的结果为什么是2,0,3,-1????
展开
 我来答
arongustc
科技发烧友

2019-10-13 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:5978万
展开全部
远离c+=-a+++(++b||++c);这种表达式,工作中写出这种式子是会被打死的,这就是无良考试出的极端误导的题目
追问
现在就是不懂这个表达式的结果,如题求解答。
追答
这个题目无非就是解释运算顺序和短路运算符的问题,这种题目解决了又如何呢?做C++十几年,也没记得特别清楚,何必和自己过不去
如果你写成
c+=(a+1)+((b+1)||(c+1)); a++;b++;c++;要好很多,
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式