C++ 语句中的(int)有多重要?
如果我有:C++ 语句中的(int)有多重要?,c++,C++,如果我有: #include <iostream> int main() { float a,b,c; b = 7; c = 2; a = (int) (b / c); std::cout << a; } int是否仅影响cout期间的数据类型,以便将“a”打印为整数,还是将“a”作为变量更改为“int”?Cast不会更改为其赋值的变量的类型。 在您的情况下,b/c的结果被强制转换为截断的int,然后提升为float。强制转换不会更改强制转换
#include <iostream>
int main()
{
float a,b,c;
b = 7;
c = 2;
a = (int) (b / c);
std::cout << a;
}
int是否仅影响cout期间的数据类型,以便将“a”打印为整数,还是将“a”作为变量更改为“int”?Cast不会更改为其赋值的变量的类型。
在您的情况下,b/c的结果被强制转换为截断的int,然后提升为float。强制转换不会更改强制转换值分配给的变量的类型。
在您的例子中,b/c的结果被强制转换为截断的整数,然后升级为浮点。在这种特殊情况下,b/c的结果将从浮点值转换为整数,然后a仍然是浮点,将其转换回浮点值 这是一种将某个值舍入为整数值的简单方法,有时可能会出现问题
请记住,C++中的变量永远不会改变它们的基本类型。被定义为浮动的东西永远是浮动的。您可以强制其他值进入同一个内存位置,也可以重铸它们,但变量本身始终有一个固定的内在类型。在这种特殊情况下,它将浮点值转换为b/c的结果,将其转换为int,然后由于a仍然是浮点,将其转换回浮点 这是一种将某个值舍入为整数值的简单方法,有时可能会出现问题 请记住,C++中的变量永远不会改变它们的基本类型。被定义为浮动的东西永远是浮动的。您可以强制其他值进入相同的内存位置,也可以重铸它们,但变量本身始终具有固定的内在类型 int只影响cout期间的数据类型,以便a可以作为整数打印,还是将a作为变量更改为int 都不是
a = (int)(....);
仅更改分配给a的内容。在这种情况下,它会截断浮点数,并将该数的整数部分赋给a
它不会改变在cout中处理的方式
int只影响cout期间的数据类型,以便a可以作为整数打印,还是将a作为变量更改为int
都不是
a = (int)(....);
仅更改分配给a的内容。在这种情况下,它会截断浮点数,并将该数的整数部分赋给a
它不会改变在cout中处理的方式。在这种情况下,int是一个cast数据类型
计算机在想什么
在主要功能中:
float a, b, c;
声明3个数据类型为浮点的变量
b = 7;
c = 5;
将值7分配给b,将值5分配给c
a = (int) (b / c);
A等于b/c==>7/5==>1.4,等等,程序员要求将数据转换为int so 1.4=>1
std::cout << a;
Output: 1.0
希望有此帮助在本例中,int是一种强制转换数据类型
计算机在想什么
在主要功能中:
float a, b, c;
声明3个数据类型为浮点的变量
b = 7;
c = 5;
将值7分配给b,将值5分配给c
a = (int) (b / c);
A等于b/c==>7/5==>1.4,等等,程序员要求将数据转换为int so 1.4=>1
std::cout << a;
Output: 1.0
希望这有助于语句中的int有多重要?在这个特定的示例中,它将截断浮点除法的结果,最终只将一个整数值存储到浮点a中。它抛出了剩余的部分,因此7/2的结果是3。如果我们去掉对int的转换,那么float a变成了3.5。那么如果我将“a”用作另一个语句的变量,它是float还是int?对int的转换只是除法运算,所以从技术上讲a仍然是float。变量的类型不会改变。看看下面R Sahu的答案。int在一个语句中有多重要?在这个特定的示例中,它将截断浮点除法的结果,最终只将一个整数值存储到浮点a中。它抛出了剩余的部分,因此7/2的结果是3。如果我们去掉对int的转换,那么float a变成了3.5。那么如果我将“a”用作另一个语句的变量,它是float还是int?对int的转换只是除法运算,所以从技术上讲a仍然是float。变量的类型不会改变。看看下面R Sahu的答案。