| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4689 人关注过本帖, 1 人收藏
标题:关于sizeof(struct student)的问题
只看楼主 加入收藏
学c
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-17
收藏(1)
 问题点数:0 回复次数:25 
关于sizeof(struct student)的问题
#include<stdio.h>
struct student
{
int num[10];
char name[10];
int ave;
};
main()
{
int i;
i=sizeof(struct student);
printf("%d",i);
}
编了一个简单的测试代码,这里i的输出为什么是56啊我用的是linux gcc编译器
搜索更多相关主题的帖子: student sizeof struct 
2007-09-19 14:30
学技术的
Rank: 2
等 级:论坛游民
帖 子:91
专家分:45
注 册:2007-8-5
收藏
得分:0 

有问题吗?56在这里是这个结构占用内在单元的大小,而不是数组的长度。

2007-09-19 14:35
学c
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-17
收藏
得分:0 
我感觉是10+10+2=22啊!老谭的书里说是这么算,你说是怎么算的
2007-09-19 14:37
学技术的
Rank: 2
等 级:论坛游民
帖 子:91
专家分:45
注 册:2007-8-5
收藏
得分:0 

你用什么编译器?TC下一个INT占两个字节,一个CHAR占一个字节,怎么会是10+10...呢??

2007-09-19 14:41
noah_shi
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2007-8-14
收藏
得分:0 
回复:(学技术的)你用什么编译器?TC下一个INT占两个...
struct student
{
int num[10]; //占4*10 = 40,内存分配40
char name[10]; //占1*10 = 10,但是根据对齐原则,内存会分配12
int ave; //占4*1 = 4 ,内存分配4
};
40 + 12 + 4 = 56

2007-09-19 15:38
yeqishi
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2007-9-19
收藏
得分:0 
noah_shi,
一个int怎么会是4个字节呢?


2007-09-19 15:49
学技术的
Rank: 2
等 级:论坛游民
帖 子:91
专家分:45
注 册:2007-8-5
收藏
得分:0 

这个和编译器有关。VC DEVCPP下都是4个的

2007-09-19 15:51
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
我在我的Red Hat LINUX 9.0版本上运行了一下你的程序,
也是56.
我测试了一下sizeof(int)-->4 sizeof(char)--->1


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-09-19 16:51
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
#include<stdio.h>
struct student
{
int ave;
int av1;
};
int main()
{
int i;
i=sizeof(struct student);
printf("%d",i);
}
结果:8

#include<stdio.h>
struct student
{
char ave[10];
};
int main()
{
int i;
i=sizeof(struct student);
printf("%d",i);
}
结果:10

#include<stdio.h>
struct student
{
int ave[10];
};
int main()
{
int i;
i=sizeof(struct student);
printf("%d",i);
}
结果:40


我也不知道,为什么会多出2个字节.



wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-09-19 16:58
学c
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-17
收藏
得分:0 

楼上:为什么是56呢?要是那样的话应该是54啊!!

2007-09-19 17:00
快速回复:关于sizeof(struct student)的问题
数据加载中...
 
   



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

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