c++ sizeof指针在结构体和类中的应用

avatar
作者
猴君
阅读量:0

在C++中,sizeof运算符用于获取数据类型或对象所占用的内存大小(以字节为单位)。对于指针,sizeof返回的是指针本身所占用的内存大小,而不是它所指向的数据类型的大小。

sizeof应用于结构体或类时,它返回的是整个结构体或类实例所占用的内存大小,而不是结构体或类中某个成员变量的大小。这是因为结构体和类是复合数据类型,它们包含了成员变量、函数指针等其他成员。sizeof计算的是整个结构体或类的总内存占用。

以下是一个简单的例子,展示了sizeof在结构体和类中的应用:

#include <iostream>  struct MyStruct {     int a;     float b; };  class MyClass { public:     int x;     double y;     void myFunction() {} };  int main() {     std::cout << "Size of MyStruct: " << sizeof(MyStruct) << " bytes" << std::endl;     std::cout << "Size of MyClass: " << sizeof(MyClass) << " bytes" << std::endl;      // 注意:以下代码不会报错,但输出的结果可能不是预期的     // 因为sizeof计算的是指针本身的大小,而不是它所指向的数据类型的大小     int* ptr = new int;     std::cout << "Size of int*: " << sizeof(ptr) << " bytes" << std::endl;      delete ptr;      return 0; } 

需要注意的是,由于sizeof返回的是指针本身的大小,因此在不同的系统和编译器上,指针的大小可能会有所不同。在32位系统上,指针大小通常为4字节;在64位系统上,指针大小通常为8字节。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!