温馨提示×

如何区分c++中sizeof指针和sizeof类型的差异

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

在C++中,sizeof是一个运算符,用于计算数据类型或对象所占用的内存大小(以字节为单位)。当你使用sizeof运算符时,它会返回括号内数据类型或对象的大小。对于指针类型,sizeof返回的是指针本身所占用的内存大小,而不是它所指向的数据类型的大小。

下面是一个例子来说明sizeof指针和sizeof类型的差异:

#include <iostream>

int main() {
    int a = 10;
    int* p = &a; // p是一个指向int类型的指针

    std::cout << "Size of int: " << sizeof(int) << " byte(s)" << std::endl; // 计算int类型的大小
    std::cout << "Size of int pointer: " << sizeof(p) << " byte(s)" << std::endl; // 计算int指针类型的大小

    return 0;
}

输出结果:

Size of int: 4 byte(s)
Size of int pointer: 8 byte(s)

在这个例子中,sizeof(int)返回的是int类型的大小,即4字节。而sizeof(p)返回的是指针p本身所占用的内存大小,即8字节(这取决于你的系统和编译器)。注意,这里的8字节并不是int类型的大小,而是指针类型的大小。

0