【发布时间】:2016-05-06 03:00:02
【问题描述】:
正如我们所说,我目前正在为决赛做准备。我无法弄清楚这个问题的答案以及为什么会是那个答案。有人可以向我解释答案以及它是如何导致的吗?这是从一个旧的考试。提前谢谢!
int main(){
int i = 1, j=1, k=1;
printf("%d", ++i || ++j && ++k);
printf("%d %d %d \n", i, j, k);
return 0;
}
【问题讨论】:
-
您对逻辑运算符和增量运算符的优先级有何理解,您的依据是什么? 提示:查看 C 标准文档以获取权威信息。
-
printf 跟它有什么关系?与往常一样适用相同的优先级规则——首先是递增,然后是逻辑 AND,最后是逻辑 OR。
-
为了准备考试,你可以试试它会打印什么。这样,你会学到更多。 ;)
-
基本上,这是询问将评估三部分表达式的多少组件的一种迂回方式。一旦你知道了这个问题的答案,你就会知道打印了什么。
-
@Cole 您对求值顺序和运算符优先级感到困惑。
标签: c