问题是我无法理解计算机如何理解 3 和 3.0 是相同的。
我认为 INT 会隐式转换为 FLOAT?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a=3;
float b=3.0;
if(a==b)
printf("s");
else
printf("w");
return 0;
}
我期望代码的输出是w,但实际输出是s。 为什么?请向我解释一下计算机的视角。
最佳答案
无论如何,就数字而言,相等运算符 ==
并不意味着“这两件事在各方面都相同吗?”它的意思是,“这两件事具有相同的值(value)吗?”
整数 3
和 float 3.0
显然具有相同的值,因此 if(3 == 3.0)
为 true .
同样,在 ASCII 机器上,'A'
字符的值为 65,因此 if('A' == 65)
为 true,即使字母 A 和数字 65 乍一看可能看起来非常不同。
关于c - 为什么C比较3等于3.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57811091/