int a=b=c=1; ++a||++b&&++c; a= ,b= ,c= .

 我来答
告煦贺皓
2019-02-18 · TA获得超过2.9万个赞
知道大有可为答主
回答量:9515
采纳率:32%
帮助的人:669万
展开全部
当然不是这样。在c语言中,&&的优先级比||高,所以当这两个一起出现的时候,是先算&&再算||,
当然,||在c语言也有个陷阱。就是当||的前半部分为真的时候,就不执行后半部,只有前半部分为假的时候才执行后半部分。
本题中:a=b=c=1;
于是a,b,c的值都是1,
++a||++b&&++c;
中,&&的优先级高,所以先算++b&&++c,
再跟++a做||运算。
于是++a是||的前半部分。而++a的值此时是2,a的值就是2,即为真。于是就不做后半部分的运算。
也就没有++b&&++c的运算。于是b,c的值还是都为1.
这下明名为什么是a=2
b=1
c=1,而不是a,b,c都为2的原因了吧。
宇昆鹏皇香
2019-04-01 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:34%
帮助的人:770万
展开全部
a\b\c初是1
后面的逻辑表达式本来是先算&&再算||
但是最终还是算||,||中当左边表达式为真时就不会计算右边表达式
所以只运算++a,所以结果是a=2,b=1,c=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
司徒心宜董浩
2019-08-07 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:705万
展开全部
a=1,b=2,c=2;因为第一个运算是从右到左执行的,执行++c后,下一条语句变为2,但该条语句还要继续执行,接着执行++b,b变为2,为真,不需要在执行或语句了,因为已经知道结果了,所以a的值仍为1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钟令蹉夜天
2019-08-01 · TA获得超过3973个赞
知道大有可为答主
回答量:3129
采纳率:33%
帮助的人:407万
展开全部
结果是2,1,1
++a得出a为2,
运算到||时,发现前面为真,后面也就不会执行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式