【发布时间】:2018-03-24 11:02:40
【问题描述】:
在下面的代码中,
int a = 1, b = 2, c = 3, d;
d = a++ && b++ || c++;
printf("%d\n", c);
输出将为 3,我得到或评估第一个条件,将其视为 1,然后不关心其他条件,但在 c 中,一元运算符的优先级高于逻辑运算符,就像数学中一样
2 * 3 + 3 * 4
我们将通过首先评估产品然后求和来评估上述表达式,为什么 c 不做同样的事情?先求所有一元运算符,再求逻辑?
【问题讨论】:
-
C关注man 1 operator
标签: c operator-precedence