首页 > 其他 > 详细

运算顺序

时间:2015-09-13 14:26:49      阅读:214      评论:0      收藏:0      [点我收藏+]

有以下程序

#include <stdio.h>
main()
{ int a=1,b=2,c=3,d=0;
if (a==1 && b++==2)


if (b!=2||c--!=3)


printf("%d,%d,%d\n",a,b,c);


else printf("%d,%d,%d\n",a,b,c);
else printf("%d,%d,%d\n",a,b,c);


}

 


程序运行后的输出结果是 1 3 3

else总是和最近的if配对,所以进入第一个if语句中条件判断时,因为是逻辑与操作需要两边运算对象的值均为非零值,才为真,所以需要逐个执行判断的结果为1,不再执行第二个case语句中的操作?而是进入第二个if语句条件判断,因为b!=2条件成立所以整个条件表达式的值为真,所以不再执行逻辑或的第二个运算对象(c-- !=3)c的值不变,也不再执行第一个else语句?打印a的值1,b的值3,c的值3?

运算顺序

原文:http://www.cnblogs.com/Mr210843013/p/4804613.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!