在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
类型的大小,而是指针类型的大小。