温馨提示×

c++ sizeof指针能否获取指针指向类型大小

c++
小樊
81
2024-09-24 22:54:15
栏目: 编程语言

在 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)的大小。

0