我认为指针占用的内存较少,并且效率更高但是当我在指针上使用sizeof()时,它表示它使用两倍的内存作为整数。我在这里错过了什么?这是我的代码
int p = 1;
Int a = 1;
Int *pointera;
pointera= &p;
cout << sizeof(pointera) << endl;
cout << sizeof(a) << endl;
它说“a”占用4个字节而“pointera”占用8个。指针不应该减少吗?我缺少什么
答案 0 :(得分:1)
指针包含一个内存地址。当您在指针上调用sizeof时,它会给出地址的大小。在64位计算机中,内存地址为8个字节。
实施例
int *pointera = &p;
sizeof(pointera);
此处pointera
存储p
的内存地址。该地址为64位,表示8个字节。
int,double和char的大小不同但是如果计算这些数据类型的指针大小,那么它们在同一台计算机中的大小都相同。