【发布时间】:2015-09-24 18:24:55
【问题描述】:
#include <stdio.h>
int main(void) {
int i = -3, j = 2, k = 0, m;
m = ++i && ++j || ++k;
printf("%d %d %d %d\n",i,j,k,m);
return 0;
}
我正在尝试了解 C 中运算符的关联性和优先级。在这里,输出结果是 -2 3 0 1,但我认为输出应该是 -2 3 1 1,因为 k 也是预先递增的。为什么这不是答案?谢谢!
【问题讨论】:
-
为什么要浪费时间执行||之后的命令什么时候之前的陈述已经成立?
-
哇!找了好久也没找到,不然一开始就不会发这个问题了。无论如何,无需投票,是的,很好的答案。 :)
-
教科书和/或网页中没有解释代码吗?你为什么要我们解释它,(再次,再次)?
标签: c operator-precedence