求助一道C语言题目
这是一道C语言题目,关于结构体的:在16位IBM-PC机上使用C语言,若有如下定义:structdata{inti;charch;doublef;}b;则结构变量b所占用...
这是一道C语言题目,关于结构体的:
在16位IBM-PC机上使用C语言,若有如下定义:
struct data
{int i;
char ch;
double f;
}b;
则结构变量b所占用内存的字节数是?
A:1
B:2
C:8
D:11
答案是D,也就是11个字节,我不明白。整型2个字节,字符1个字节,双精度4个字节,加起来7个字节,11个字节是怎么得出的呢
?
求熟悉C语言的同志帮助解答~ 展开
在16位IBM-PC机上使用C语言,若有如下定义:
struct data
{int i;
char ch;
double f;
}b;
则结构变量b所占用内存的字节数是?
A:1
B:2
C:8
D:11
答案是D,也就是11个字节,我不明白。整型2个字节,字符1个字节,双精度4个字节,加起来7个字节,11个字节是怎么得出的呢
?
求熟悉C语言的同志帮助解答~ 展开
6个回答
展开全部
看下VC6.0下的结果吧(32位)……
会吓你一跳的……
#include <stdio.h>
struct data
{int i;
char ch;
double f;
}b;
int main()
{
printf("%d,%d,%d,%d",sizeof(b.i),sizeof(b.ch),sizeof(b.f),sizeof(b));
return 0;
}
输出结果:
4,1,8,16。
//结构体会按照double型自然对齐,
int i; 和char ch;放一个8位,double放一个8位,
sizeof(b)就是16。
---------------------------
#include <stdio.h>
struct naturalalign
{
char i;
short ch;
char f;
}b;
int main()
{
printf("%d,%d,%d,%d",sizeof(b.i),sizeof(b.ch),sizeof(b.f),sizeof(b));
return 0;
}
输出结果:
1,2,1,6。
//同样,结构体会按照short型自然对齐,
char i; 和char f;各放一个2位,short放一个2位,
sizeof(b)就是6。
//如果把short ch; 和char f;的顺序换一下,
结果是1,2,1,4。
char i; 和char f;一起放一个2位,short放一个2位,
sizeof(b)就是4。
结构体有个对齐方式
感觉和编译器有很大关系
题出的有问题
会吓你一跳的……
#include <stdio.h>
struct data
{int i;
char ch;
double f;
}b;
int main()
{
printf("%d,%d,%d,%d",sizeof(b.i),sizeof(b.ch),sizeof(b.f),sizeof(b));
return 0;
}
输出结果:
4,1,8,16。
//结构体会按照double型自然对齐,
int i; 和char ch;放一个8位,double放一个8位,
sizeof(b)就是16。
---------------------------
#include <stdio.h>
struct naturalalign
{
char i;
short ch;
char f;
}b;
int main()
{
printf("%d,%d,%d,%d",sizeof(b.i),sizeof(b.ch),sizeof(b.f),sizeof(b));
return 0;
}
输出结果:
1,2,1,6。
//同样,结构体会按照short型自然对齐,
char i; 和char f;各放一个2位,short放一个2位,
sizeof(b)就是6。
//如果把short ch; 和char f;的顺序换一下,
结果是1,2,1,4。
char i; 和char f;一起放一个2位,short放一个2位,
sizeof(b)就是4。
结构体有个对齐方式
感觉和编译器有很大关系
题出的有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
整型在C里是2字节在C++里是4字节,double型在C里是8字节所以1+2+8=11字节
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
双精度型也就是double是占用8个字节的,而不是你说的4个字节!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
双精度double占8个字节,而浮点型float才是占4个字节!记住
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
难道IBM机没有数据对齐?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询