您的位置:首页 > 其它

struct和union的大小问题

2008-01-31 17:42 274 查看
union类型以其中size最大的为其大小

struct类型以其中所有size大小之和为其大小
#include<iostream>

using namespace std;

int main()

#include<iostream>

using namespace std;

int main()

#include<iostream>

using namespace std;

int main()

#include<iostream>

using namespace std;

int main()

{

typedef struct student

{

char name[10];

char sex;

long sno;

float score [4];

} STU;

STU a[5];

cout<<sizeof(a)<<endl;

return 0;

}
答案是:160. 为什么,只是换了顺序而已呀?关键就在顺序上。

结构体中,size最大的是long,size是 4,所以,按照顺序,Char name[10];12个字节;但是这12中多分配的2个字节可以包含后面的Char sex; (问题就在这);Float score [4]; 16个字节。于是(12+4+16)×5=160
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: