作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/17 14:36:42
关于C语言的一个问题.a+=a+b||a*b-a&&b的值是多少
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
为什么?
把式子拆分: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!