C ++指针占用的内存多于整数?

时间:2016-08-26 04:02:33

标签: c++ pointers

我认为指针占用的内存较少,并且效率更高但是当我在指针上使用sizeof()时,它表示它使用两倍的内存作为整数。我在这里错过了什么?这是我的代码

  int p = 1;
  Int a = 1;
  Int *pointera;
  pointera= &p;
  cout << sizeof(pointera) << endl;
  cout << sizeof(a) << endl;

它说“a”占用4个字节而“pointera”占用8个。指针不应该减少吗?我缺少什么

1 个答案:

答案 0 :(得分:1)

指针包含一个内存地址。当您在指针上调用sizeof时,它会给出地址的大小。在64位计算机中,内存地址为8个字节。

实施例

int *pointera = &p;
sizeof(pointera);

此处pointera存储p的内存地址。该地址为64位,表示8个字节。

int,double和char的大小不同但是如果计算这些数据类型的指针大小,那么它们在同一台计算机中的大小都相同。