c语言中sizeof的意思是什么下面这道题的答案是什么,请解释一下

2024-11-25 20:50:53
推荐回答(5个)
回答1:

sizeof是指这个数据类型分配的单元内存大小,比如int 是4,等等,所以sizeof(struct date)=4+4+4=12, union类型比较特殊,它的长度大小时内部成员中最大的一个的长度,所以sizeof(m)是其中long的值,也就是8

回答2:

上面这么多朋友都在乱说,不怕误导别人啊?

VC环境下的答案是124(TC环境下是64,因为int在VC下占4字节,而在TC下占2字节)

sizeof(struct date)=12(year,month和day每个占4字节,所以结构体today占用3×4=12字节)
sizeof(m)=4(a占4字节,b占4字节,c占1字节,所以联合m是它们最大成员占用的字节数,即4字节)

回答3:

上面已经讲得很清楚了,我也来讲句废话,简单地来说,sizeof()就是返回括号中变量或数据类型在内存中所占的字节数。如:sizeof(int)则返回4;sizeof(x)则返回8,这里假设x是double型。(在vc6.0环境下)

回答4:

16 4

struct如果超过8,就必须是8的倍数,而且要按8对齐。这里int year month加起来是8,剩下一个day由于要对其,也给他安排8字节内存,所以是16

Union是共用内存,取占字节数最多的为准,这里long占4个,所以4个

回答5:

反正sizoef作用就是计算数据类型在内存中的分配大小.
上面程序段的意思就是:
先定义一个结构体data,再定义一个联合体m.
"printf("%d%d\n",sizeof(struct date),sizeof(m));"就是输出结构体data和联合体m分别所占内存长度.
答案高金山同志已经给出.即
sizeof(struct date)=12;(结构体data是每一个数据类型所占字节数总和)
sizeof(m)=4.(联合m是它们最大成员占用的字节数,)
其输出结果为:
124