| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 620 人关注过本帖
标题:一个求长度的问题
只看楼主 加入收藏
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
结帖率:50%
收藏
 问题点数:0 回复次数:9 
一个求长度的问题
#include "stdio.h"
typedef struct student
{
char name[10];
long swo;
char sex;
float score[4];

}stu;
main()
{
stu a[5];
printf("%d",sizeof(a));
}
程序如上,
求出的长度是多少???
程序运行后是180!!!???
搜索更多相关主题的帖子: 长度 name student char 
2006-11-10 18:19
lwn
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-8-22
收藏
得分:0 
程序运行后是:155!
sizeof(a)求的是数组a中的总的字节数。
a有5个元素,每个元素占字节数是:10+4+1+4*4=31
所以sizeof(a)=155.

学不好C语言,就娶不上媳妇了!
2006-11-10 18:45
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 

那运行后是180啊
我试过了


West and east,home is best……
2006-11-10 18:48
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

谁有强殖装甲第二部,可以Q我460054868
2006-11-10 18:55
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
google 结构体对齐

我的原则很简单:不做不喜欢的事!
2006-11-10 19:00
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
收藏
得分:0 
我用win-tc 再xp sp2上运行是155
用VC++ 再xp sp2上运行是180
这和编译器有关,不同的编译器对long int的字节数是不一样的

我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2006-11-10 19:05
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 
原来我们现在用的编议程序都是int按4字节来算的啊
不过书上都说是2个字节的
而且实际的话还是按4字节对齐的
还跟顺序有关
好复杂啊~~~~~~~~~~~~~~~~~~~~~~~~

West and east,home is best……
2006-11-10 19:14
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用lj_860603在2006-11-10 19:00:00的发言:
google 结构体对齐

答案在此,楼上还要胡猜?


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-11-10 19:20
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 

我已经搜索过了在看了
我是说我大概已经明白了
呵呵,谢谢啊
又学了很多


West and east,home is best……
2006-11-10 19:35
sunyuantz
Rank: 1
等 级:新手上路
威 望:1
帖 子:407
专家分:0
注 册:2006-3-20
收藏
得分:0 
我在《C Prime Plus》这本书上看过,由于编译器和操作系统的不同,对于int 和short int 的字节数是不同的,在16位操作系统中,short int和int型的字节数是相同的,而在32位中却是long int和int相同,等到64位操作系统中又会有什么变化现在还不知道。而编译器是建立在操作系统之上的,我猜想正是由于这个原因,vc++才和tc不一样把(tc是在DOS上的,而DOS是16位的;vc++6.0是支持windows NT内核的,而windows NT是32位的)。以上是我的个人想法。

我不是名人,所以不要签名。等哪天我成名人了......你都认识我了还要签名干嘛!
2006-11-10 19:38
快速回复:一个求长度的问题
数据加载中...
 
   



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

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