c新手吧 关注:8,595贴子:48,089
  • 2回复贴,共1

请帮忙解答一下关于逻辑表达式的问题,谢谢

只看楼主收藏回复

代码是:
int i = 3, j = 4, k = 5;
printf("%d\n", i < j || ++j < k);
printf("%d %d %d\n", i, j, k);
输出结果为:
1
3 4 5
我想问的是++不是优先执行吗?这样打印j的值不应该是5吗?怎么是4。谢谢
如果按照逻辑或去先执行也不对啊,那样或左边的值为真(1),接下来就应该计算右边的值,这样结果j的值还是应该为5啊。除非或左边的值为假(0),才不会去计算右边的值,这样结果j的值确实为4,可是那样的话第一个输出的结果不就应该为假(0)。


IP属地:陕西1楼2016-09-17 22:24回复
    逻辑与和逻辑或表达式为断点表达式,根据真"或"任意表达式为真,假"与"任意表达式为假,所以逻辑或判断其前表达式为真即止,而逻辑与判断其前表达式为假即止。


    IP属地:安徽来自Android客户端2楼2016-09-17 23:41
    收起回复