【发布时间】:2018-08-10 11:22:38
【问题描述】:
根据我有限的知识,逻辑运算符具有从左到右的评估顺序。根据该规则,它应该评估 x && y 这是 1 然后它应该在 if 语句中评估 == 1 。但那是没有发生的事情。谁能帮我解决这个问题。
int main()
{
int x = 1, y = 2;
if (x && y == 1)
printf("true\n");
else
printf("false\n");
}
【问题讨论】:
-
变量
y不等于1 :) -
@Waleed 不,那不是那个代码的意思。
-
求值顺序和运算符优先级是两个不同的东西,虽然相关。不要把它们混在一起!前者描述了代码的执行顺序,后者描述了编译器读取代码的顺序。
-
见Operator precedence table for the C programming language。这甚至可能被某些人认为是该问题的重复。
标签: c