关于C语言的一个问题。a+=a+b||a*b-a&&b的值是多少

inta=2,b=3;a+=a+b||a*b-a&&b值:main(){inta=2,b=3;printf("%d\n",a+=a+b||a*b-a&&b);}在VC6.... int a=2,b=3;a+=a+b||a*b-a&&b值:
main()
{ int a=2,b=3;
printf("%d\n",a+=a+b||a*b-a&&b);

在VC6.0++中的到的值是3
为什么?
展开
 我来答
匿名用户
2014-01-02
展开全部
把式子拆分:a=a+(a+b||a×b-a&&b);
那么最重要的是算逻辑表达式的值对吧
可以把括号里的式子用||分为左右两边 ,那式子被分为了 a+b 和 a×b-a&&b;
关键就在于这里,由于算数运算符号优先级大于关系运算符;所以在后一个式子变成了 :
5(a+b)||4(a×b-a)&&3(b)即 5||4&&3, 5||4结果是1 1&&5结果是1 然后就变成了a=a+1得3;很清楚了吧 0.0!!
百度网友fe8b622
2014-01-02 · 超过14用户采纳过TA的回答
知道答主
回答量:46
采纳率:100%
帮助的人:26.8万
展开全部
运算优先级:
a =a + (a+b) || (a*b-a) && b)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fengrrari
2014-01-02 · 超过21用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:46.7万
展开全部
a += (a+b) || (a*b-a) && b
a += 5 || 4 && 3
a += 1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
南风不归处
2014-01-02
知道答主
回答量:39
采纳率:0%
帮助的人:16.6万
展开全部
就是楼上的答案啊!然后就是a=a+1=2+1=3了哟
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式