在 C++ 中,sizeof
操作符返回的是括号内数据类型或对象所占用的字节数。对于指针来说,sizeof
返回的是指针本身(即存储地址的变量)的大小,而不是指针所指向类型的大小。
要获取指针指向类型的大小,你需要使用指针,并对该指针进行解引用。但是,请注意,你不能直接对原始指针使用 sizeof
来获取它所指向类型的大小,因为 sizeof
不适用于指针本身。你需要先解引用指针,然后对解引用后的对象使用 sizeof
。
以下是一个示例:
#include <iostream>
int main() {
int a = 10;
int* p = &a; // p 是一个指向 int 类型的指针
// 获取指针指向的类型的大小(在这里是 int 类型)
std::cout << "Size of int: " << sizeof(*p) << " byte(s)" << std::endl;
return 0;
}
在这个示例中,我们首先定义了一个 int
类型的变量 a
,然后创建了一个指向 int
类型的指针 p
。接下来,我们使用 *p
对指针进行解引用,以便获取它所指向的对象(即 a
)。最后,我们使用 sizeof(*p)
来获取解引用后的对象(即 a
)的大小。