在 C++ 中,sizeof
是一个运算符,用于计算数据类型或对象所占用的内存大小(以字节为单位)。对于指针变量,sizeof
返回的是指针本身所占用的内存大小,而不是指针所指向的数据类型的大小。
在大多数现代计算机系统中,所有类型的指针都占用相同的内存大小,通常是 4 字节(32 位系统)或 8 字节(64 位系统)。这意味着,无论指针指向哪种数据类型(如 int
、float
、double
等),sizeof
指针的结果都是相同的。
例如,以下代码展示了 sizeof
指针在不同数据类型上的用法:
#include <iostream>
int main() {
int a = 10;
float b = 2.0f;
double c = 3.14;
int* int_ptr = &a;
float* float_ptr = &b;
double* double_ptr = &c;
std::cout << "Size of int pointer: " << sizeof int_ptr << " byte(s)" << std::endl;
std::cout << "Size of float pointer: " << sizeof float_ptr << " byte(s)" << std::endl;
std::cout << "Size of double pointer: " << sizeof double_ptr << " byte(s)" << std::endl;
return 0;
}
输出结果将显示所有指针类型的大小相同:
Size of int pointer: 8 byte(s)
Size of float pointer: 8 byte(s)
Size of double pointer: 8 byte(s)
需要注意的是,sizeof
指针的结果与指针所指向的具体数据类型无关,因为指针只存储内存地址,而不关心地址中存储的数据类型。