c语言结构体问题

在16位IBM-PC机上使用C语言,若有如下定义 struct data { int i; char ch; double f; } b; 则结构变量b占用内存的字节数是A.1B.2C.7D.11

答案是:D
为什么?

int i; 2字节 char ch; 1字节 double f; 8字节

但运算的结果是:16
为何不是16?

这是因为C中结构体的字节数都是其中每个域的最大单元字节数(这里是double的字节数8)的倍数(向上取整),若需用17个字节(比如说struct{char c; double x[2];}b;),则实际占用为24字节。追问

则结构变量b占用内存的字节数是
A.1
B.2
C.7
D.11

正确答案是:D
11字节
与算出来的结果不一样哦
选项中也没有16字节这个选择

为什么?

追答

出题的人疏忽了。自己上机试一下就知道了。

另外这与具体的编译器有关。我在VC++6.0上试过。

温馨提示:答案为网友推荐,仅供参考
相似回答