关于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
为什么? 展开
main()
{ int a=2,b=3;
printf("%d\n",a+=a+b||a*b-a&&b);
}
在VC6.0++中的到的值是3
为什么? 展开
4个回答
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!!
那么最重要的是算逻辑表达式的值对吧
可以把括号里的式子用||分为左右两边 ,那式子被分为了 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!!
展开全部
运算优先级:
a =a + (a+b) || (a*b-a) && b)
a =a + (a+b) || (a*b-a) && b)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a += (a+b) || (a*b-a) && b
a += 5 || 4 && 3
a += 1
a += 5 || 4 && 3
a += 1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是楼上的答案啊!然后就是a=a+1=2+1=3了哟
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询