| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1692 人关注过本帖, 1 人收藏
标题:这个结构类型占几个字节?
取消只看楼主 加入收藏
醉游人
Rank: 2
等 级:论坛游民
帖 子:15
专家分:10
注 册:2017-6-4
结帖率:75%
收藏(1)
已结贴  问题点数:10 回复次数:3 
这个结构类型占几个字节?
定义了struct Student这样一个结构,运行后为什么 sizeof(student[0])=32 呢。
每个成员变量大大小是20/4/1/4个字节,加起来不应该是29个字节吗?


程序代码:
#include <stdio.h>

int main()
{
    struct Student
    {
        char cName[20];
        int iNumber;
        char cSex;
        int iGrade;
    };
    
    struct Student student[5]=
    {
        {"Wangjiasheng",12062212,'M',3},
        {"YuLongjiao",12062213,'W',3},
        {"JiangXuehuan",12062214,'W',3},
        {"ZhangMeng",12062215,'W',3},
        {"HanLiang",12062216,'M',3},
    };
    
    printf("sizeof(student[0])=%d\n",sizeof(student[0]));
    
    return 0;

 } 
搜索更多相关主题的帖子: 结构 类型 字节 Student sizeof 
2017-07-04 22:52
醉游人
Rank: 2
等 级:论坛游民
帖 子:15
专家分:10
注 册:2017-6-4
收藏
得分:0 
回复 2楼 lmlm1001
我把每个成员的大小打印出来,运行结果是20,4,1,4
把每个成员的地址也打印出来,发现char cSex 和 int iGrade的地址差距为4,char cSex大小为1,为何占了4个字节。

程序代码:
#include <stdio.h>

int main()
{
    struct Student
    {
        char cName[20];
        int iNumber;
        char cSex;
        int iGrade;
    };
    
    struct Student student[5]=
    {
        {"Wangjiasheng",12062212,'M',3},
        {"YuLongjiao",12062213,'W',3},
        {"JiangXuehuan",12062214,'W',3},
        {"ZhangMeng",12062215,'W',3},
        {"HanLiang",12062216,'M',3},
    };
    
    printf("sizeof(student[0].cName)=%d\n",sizeof(student[0].cName));
    printf("sizeof(student[0].iNumber)=%d\n",sizeof(student[0].iNumber));
    printf("sizeof(student[0].cSex)=%d\n",sizeof(student[0].cSex));
    printf("sizeof(student[0].iGrade)=%d\n",sizeof(student[0].iGrade));
    
    printf("locationof(student[0].cName)=%p\n",&student[0].cName);
    printf("locationof(student[0].iNumber)=%p\n",&student[0].iNumber);
    printf("locationof(student[0].cSex)=%p\n",&student[0].cSex);
    printf("locationof(student[0].iGrade)=%p\n",&student[0].iGrade);
    
    return 0;

 } 

图片附件: 游客没有浏览图片的权限,请 登录注册
2017-07-04 23:11
醉游人
Rank: 2
等 级:论坛游民
帖 子:15
专家分:10
注 册:2017-6-4
收藏
得分:0 
回复 4楼 lmlm1001
谢谢!!
2017-07-04 23:42
醉游人
Rank: 2
等 级:论坛游民
帖 子:15
专家分:10
注 册:2017-6-4
收藏
得分:0 
回复 6楼 吹水佬
谢谢,按你的方法试了确实如此。

知道为什么这个结构的大小不等于结构中每个成员的大小之和就可以了,不然真的很纳闷。
2017-07-05 21:28
快速回复:这个结构类型占几个字节?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.070592 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved