C语言中输入int与double与float 的区别在哪里?为什么用不同的结果会不一样

C语言中输入int与double与float 的区别在哪里?为什么用不同的结果会不一样

这是个非常基础的问题了。

int 是整数类型,float 和double是浮点数类型。

一般来说,float 与double区别不大(使用上来说)。

只不过double使用了更多的内存空间来储存数据(一般一个double占8个字节,一个float占4个字节)。使用更多内存空间的优点在于,一方面精度更高,另一方面是数据范围更广。

通常来讲,int 和double(或 float) 应该区分来用。

如果上述两种类型出现在同一个表达式中,那么将会逐步向最高级别的数据类型转换。

比如

(1 + 3)显然是int 类型的,结果为4。然后再进行后续计算时,遇到了double的4.5,那么将会把4转换为double 再进行运算,即变成4.0 + 4.5,最后表达式结果为double 的 8.5。

注意到float类型也是4字节,也有直接把float数据块看作是一个int数据块来处理的操作。

比如,在一段快速计算根号倒数的大神级代码

另外一个例子是使float也可以使用异或运算来交换两个变量,具体的可以看我微信公众号文章