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的答案。