为什么在以下代码中使用关系运算符的语句的计算结果为 1?
Why is the statement using relation operators evaluate to 1 in the following code?
i的值不应该是0吗?
由于 x
#include<stdio.h>
int main(void)
{
int x = 10,y=20,z=5,i;
i=x<y<z;
printf("%d",i);
return 0;
}
在您的代码中,由于关系运算符的 LTR associativity,
i=x<y<z;
评估为
i=(x<y)<z;
也就是
i=(10<20)<z;
也就是
i= 1 < 5;
这是真的 (1)。 1
存储在 i
中。就是这样。
i的值不应该是0吗? 由于 x
#include<stdio.h>
int main(void)
{
int x = 10,y=20,z=5,i;
i=x<y<z;
printf("%d",i);
return 0;
}
在您的代码中,由于关系运算符的 LTR associativity,
i=x<y<z;
评估为
i=(x<y)<z;
也就是
i=(10<20)<z;
也就是
i= 1 < 5;
这是真的 (1)。 1
存储在 i
中。就是这样。