#include <stdio.h>
int main()
{
int x = 3;
float y = x>10;
printf("y is %f",y);
}
如果x<10
输出为1.0000?
我的尝试
因此x为3且x<10
为真,返回1.00而x>10
为false返回0.00但仍然为什么浮动的行为类似于bool。为什么你没有返回一些垃圾值?
答案 0 :(得分:5)
根据C标准(6.5.8关系运营商)
6每个运营商&lt; (小于),&gt; (大于),&lt; =(小于 或者等于),并且&gt; =(大于或等于)如果是,则产生1 指定的关系为true,如果为false,则为0 .107)结果为 输入int
为float类型的对象赋值是一个定义良好的操作。
实际上你可以考虑这段代码
int x = 3;
float y = x>10;
像
int temporary = 0; // x > 10
float y = temporary;