{ int a,b,c; a=b=c=1; ++a||++b&&++c; printf("(1)a=%d,b=%d,c=%d\n",a,b,c);}谁能将它详细剖析一下

 我来答
sun_siliang
推荐于2018-04-05 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4450万
展开全部
C语言在做||运算时,如果第一个操作数为非零(真),不计算第二个操作数。所以在执行++a||++b&&++c;时,++a的值为非零,不在计算第二个操作数++b&&++c;因此程序执行结果为:
(1)a=2,b=1,c=1
更多追问追答
追问
C语言的执行先后顺序不是先执行&&,再执行||的吗?
追答
你说的是对的,但是在做||运算时,为了提高效率,C把第二个操作数++b&&++c看作一个整体处理。
百度网友8943535
2011-05-28 · 超过15用户采纳过TA的回答
知道答主
回答量:285
采纳率:0%
帮助的人:82.9万
展开全部
main()
{
int a,b,c; //定义三个整数
a=b=c=1; //赋值
++a||++b&&++c; // 做三个数的逻辑运算(++指自增,即a+1; “||”是逻辑“或”,“&”是逻辑“与”
printf("(1)a=%d,b=%d,c=%d\n",a,b,c);//输出

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式