gpt4 book ai didi

c - 我们为什么要进行类型转换?

转载 作者:太空宇宙 更新时间:2023-11-04 00:55:35 24 4
gpt4 key购买 nike

如果我这样做:

int i=3, j=10;
float f;
f=(i+j)/2;
so f won't get value 6.5 but 6.

但是,

f=(i+(float)j)/10;//edited 

将是 f=6.5。这个临时值存储在什么地方,为什么我们需要类型转换?

最佳答案

f=(i+j(float))/10;

不正确;强制转换中的类型在其操作数之前出现:

f=(i+(float)j)/10;

无论如何。在计算算术运算符时,如果一个操作数是浮点类型,另一个是整数类型,则将整数操作数转换为浮点类型并执行浮点运算。

这是所谓的常规算术转换的一部分(您可以通过搜索 Google 找到更多信息,尽管 MSDN has a simple explanation of what they are )。

临时值存储在哪里取决于编译器和计算机。它很可能存储在寄存器中,因为您将立即使用它,但它也可以存储在堆栈或其他地方。

关于c - 我们为什么要进行类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4020720/

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