gpt4 book ai didi

c - 什么决定了将用于存储临时值的数据类型?

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:07 25 4
gpt4 key购买 nike

这可能是非常基本的,但我很好奇原因是什么。

在处理不同类型的运算时,例如对不同类型(int、float 等)的数据进行乘法和除法运算时,是什么决定了选择哪种数据类型?

例如,如果我执行以下操作:

float a = 5 / 10;

我将得到“0”作为结果,因为 5 和 10 临时存储在我们进行除法的 int 中,然后我们将其放入 float 中。正确的?

但是如果我们改为:

float a = (float)5 / 10;

我们得到的是 0.5。

在这种情况下,在 C 语言中,当 float 优先于 int 时,决策看起来如何?

最佳答案

看看这个片段。

float a = 5 / 10;

510 默认表示为 C(以及 Java 和 C++ 以及 Python 2.x)的整数。它们没有指定以任何其他方式存储;也就是说,它们不符合浮点类型的外观。整数除法会导致截断,因此您每次都会得到值 0。

现在,关于第二个片段:

float a = (float)5 / 10;

...C(或 Java 或 C++ 或 Python 2.x)将其解释为:

float a = 5.0 / 10;

因为浮点值的等级高于整数,所以它会将整数提升为 float 。这称为类型提升。您可以阅读一些相关信息 here .

关于c - 什么决定了将用于存储临时值的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10221437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com