在以下代码中:
float x = 0.23;
int z;
z = x;
if (x)
printf("float %f will not be converted to 0!\n", x);
if (z)
printf("this will not print!\n");
我认为浮点数将转换为整数,然后在if
语句中使用时检查它是否为零。有人可以向我解释一下,为什么不是这样?
编辑:
(只是为了澄清让我感到困惑的事情)由于像<
return这样的逻辑运算符int
,我认为该if
语句接收整数值,因此需要进行转换。正如答案所指出的那样,事实并非如此。谢谢大家!