在现代计算机上进行双倍和浮动内存分配

时间:2018-08-25 19:19:43

标签: c++

我正在学习double和float及其区别。我运行了一段代码,如下所示,以查看分配了多少内存,具体取决于我添加的整数和小数点的数量,但是看来无论我键入多少整数,浮点型和双精度型总是得到8字节的大小。我了解到float占用了4个字节,但是林先生开始认为在现代计算机上不是这种情况,也许以前是这种情况,今天我们可以互换使用它们而不影响结果了吗?我在这里想念什么吗?

   // C++ program to sizes of data types
  #include<iostream>
  using namespace std;

  int main()
  {

cout << "Size of int : " << sizeof(11111111111111111) << " bytes" << endl;

cout << "Size of float : " << sizeof(11111111111111111111111111111111111111111111111111111111111.1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111) << " bytes" <<endl;
cout << "Size of double : " << sizeof(.11111111111111111111111111111111111111111111111111111) << " bytes" << endl;


  return 0;
 }

1 个答案:

答案 0 :(得分:3)

您在两行上都打印double的大小,因为两个浮点文字的类型均为double。如果要创建float文字,请在其后附加f1.0f。其类型为float。如果您不向其附加f,它将具有double的类型。

或者您也可以只使用sizeof(float)