输出为16的原因是因为类Dog的成员变量中包含一个int类型的变量value和一个指针类型的变量ptr,而指针类型的变量在32位系统中占4个字节(32位),在64位系统中占8个字节(64位)。另外,类中还有一个静态成员变量sta,静态成员变量不计算在类的对象的内存大小中。

因此,类Dog的对象的大小为value所占的4个字节(32位系统)或者8个字节(64位系统)加上ptr所占的4个字节(32位系统)或者8个字节(64位系统),即16个字节。

#include iostreamusing namespace std;using stdcout;class Dogpublic	void show protectedprivate	int value = 66;	int ptr;	static int sta;;int main	Dog wc;	cout sizeofwc endl;	return 0;详细解释输出为什么是16

原文地址: https://www.cveoy.top/t/topic/iFrS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录