注册 登录
编程论坛 C语言论坛

关于运算级别短路的问题

NIALK 发布于 2019-09-28 19:06, 2051 次点击
#include<stdio.h>
int main()
{
    int a=5;
    int b=0;
    b&&++a;
    printf("%d",a);

 return 0;
}

输出为5,但我认为++的运算级为2,而&&的运算级为11,应该先算++a等于6不是吗?
不应该受短路影响啊,为什么?
5 回复
#2
小白报道2019-09-28 19:38
&&运送则从左到右进行判断,如果左边为0,则右边不再计算
#3
自学的数学2019-09-28 19:45
http://c.
#4
rjsp2019-09-29 08:42
“优先级”中的“优先”说的是与参数绑定谁先谁后,而与“先计算谁”一点儿关系都没有

打开 https://zh.
重点读读这一句:
优先级和结合性 与 求值顺序 独立。

#5
forever742019-09-30 18:32
你被提拔做总裁 && 总裁对本年度100个亿的亏损承担主要责任
同上理,公司亏损100亿其实是比谁是总裁更优先的,
但是你要没做这个总裁你还闹什么心呢?
#6
forever742019-09-30 18:37
学习内容要完整:那么多运算符有各自的优先级和结合性,但是只有
逻辑与 &&
逻辑或 ||
条件运算符  ? :
逗号运算符 ,
这四个规定了其中 子表达式 的求值顺序。
1