using namespace std;
class cl
{
int x;
};
int main()
{
cl first;
cout<<sizeof(first)<<endl;
return 0;
}
8 个解决方案
#1
输出 4
sizeof是用来求数据类型或变量所占的字节数的,因为类cl就一个成员变量,为int型,int型在32位机以上运行环境,占4个字节,所以类cl占4个字节,即实例出的对象也占4个字节
sizeof是用来求数据类型或变量所占的字节数的,因为类cl就一个成员变量,为int型,int型在32位机以上运行环境,占4个字节,所以类cl占4个字节,即实例出的对象也占4个字节
#2
楼上正解,我再补充一点,用sizeof测结构体长度,必定是4的倍数。
比如你加个成员变量char c 在结构体中,结果为8
比如你加个成员变量char c 在结构体中,结果为8
#3
楼上正解,我再补充一点,用sizeof测结构体长度,必定是4的倍数。
比如你加个成员变量char c 在结构体中,结果为8
不一定都是4的倍数吧,试试不同编译器里只往结构体里放一个char
#4
说得不严谨,测测一下几种结构体长度就知道是不是必定是4的倍数了:
class ci
{
char c;
};
class ci
{
short int a;
};
#pragma pack(1)
class ci
{
short int a;
char c;
};
#pragma pack()
#pragma pack(1)
class ci
{
int a;
char c;
};
#pragma pack()
#5
你的这个类是一个POD(Plain Old Data),同时只有一个元素, 所以大小是4
#6
int通常都是4, 结构体大小跟对齐方式相关
#7
类的对象占用的内存包插成员函数的形参和内存和成员变量的内存。
因为cl中只有一个成员函数 int x, 在32位系统中,int占用4个字节。
所以这里的输出值为4
class cl
{
int x;
};
因为cl中只有一个成员函数 int x, 在32位系统中,int占用4个字节。
所以这里的输出值为4
class cl
{
int x;
};
#8
类的对象占用的内存包括成员函数的形参的内存和成员变量的内存。
因为cl中只有一个成员函数 int x, 在32位系统中,int占用4个字节。
所以这里的输出值为4
class cl
{
int x;
};
因为cl中只有一个成员函数 int x, 在32位系统中,int占用4个字节。
所以这里的输出值为4
class cl
{
int x;
};
#1
输出 4
sizeof是用来求数据类型或变量所占的字节数的,因为类cl就一个成员变量,为int型,int型在32位机以上运行环境,占4个字节,所以类cl占4个字节,即实例出的对象也占4个字节
sizeof是用来求数据类型或变量所占的字节数的,因为类cl就一个成员变量,为int型,int型在32位机以上运行环境,占4个字节,所以类cl占4个字节,即实例出的对象也占4个字节
#2
楼上正解,我再补充一点,用sizeof测结构体长度,必定是4的倍数。
比如你加个成员变量char c 在结构体中,结果为8
比如你加个成员变量char c 在结构体中,结果为8
#3
楼上正解,我再补充一点,用sizeof测结构体长度,必定是4的倍数。
比如你加个成员变量char c 在结构体中,结果为8
不一定都是4的倍数吧,试试不同编译器里只往结构体里放一个char
#4
说得不严谨,测测一下几种结构体长度就知道是不是必定是4的倍数了:
class ci
{
char c;
};
class ci
{
short int a;
};
#pragma pack(1)
class ci
{
short int a;
char c;
};
#pragma pack()
#pragma pack(1)
class ci
{
int a;
char c;
};
#pragma pack()
#5
你的这个类是一个POD(Plain Old Data),同时只有一个元素, 所以大小是4
#6
int通常都是4, 结构体大小跟对齐方式相关
#7
类的对象占用的内存包插成员函数的形参和内存和成员变量的内存。
因为cl中只有一个成员函数 int x, 在32位系统中,int占用4个字节。
所以这里的输出值为4
class cl
{
int x;
};
因为cl中只有一个成员函数 int x, 在32位系统中,int占用4个字节。
所以这里的输出值为4
class cl
{
int x;
};
#8
类的对象占用的内存包括成员函数的形参的内存和成员变量的内存。
因为cl中只有一个成员函数 int x, 在32位系统中,int占用4个字节。
所以这里的输出值为4
class cl
{
int x;
};
因为cl中只有一个成员函数 int x, 在32位系统中,int占用4个字节。
所以这里的输出值为4
class cl
{
int x;
};