声明中有多么重要

How significant is (int) within a statement?

本文关键字:声明      更新时间:2023-10-16

如果我有:

#include <iostream>
int main()
{
  float a,b,c;
  b = 7;
  c = 2;
  a = (int) (b / c);
  std::cout << a; 
}

(int(仅在cout过程中影响数据类型,以便可以将" a"打印为整数,或者它会影响" a",因为变量将其更改为'int'?

(int)是否仅在cout期间影响数据类型,以便可以将a打印为整数,或者它会影响a作为变量将其更改为int

都不。

a = (int)(....);

仅更改分配给a的内容。在这种情况下,它截断了浮点数,并将数字的组成部分分配给a

它不会改变a中CC_8的处理方式。您会注意到输出中的截断值。但是,原因是在上一个语句中将截断的值分配给a并不是因为cout << a的处理方式不同。

它不会将a的类型更改为int。变量的类型不能在C 中更改。在该计划的一生中,它保持不变。

在这种特殊情况下,它从float值转换为 b/c的结果为int,然后由于 a仍然是 float,将其转换回float

这是一种容易的,有时甚至有问题的方式将某些东西舍入整数值。

请记住,在C 中,变量永远不会改变其基本类型。定义为float的东西永远保持浮动。您可以将其他值强加到同一内存位置,可以将其重新铸造,但是变量本身总是具有固定的固有类型。

铸件不会更改铸造值所分配给变量的类型。在您的情况下,将b/c的结果施放(截断(为int,然后将其升级为float

在这种情况下, int是铸造数据类型。

计算机在想什么

主要功能:

float a, b, c;

声明data_type float的3个变量。

b = 7;
c = 5;

分配的值为b,值为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

希望此帮助