77问答网
所有问题
struct data { int a; float b; double c; char d; } u; 结构体类型变量u占用存储空间为________。
如题所述
举报该问题
推荐答案 2012-01-11
24。这涉及内存对齐的因素。
float是4字节,所以b的地址必须是4的倍数,所以a后面要补2个空字节。
这样a,b一共就是8个字节(其中2个是空字节),double正好是8字节,所以c不用对齐了。
最后d本身占1个字节,内存对齐有一条规则是结构体大小必须是最大的成员的长度的整数倍,最大成员是c,长度为8,所以结构体大小必须是8的倍数,所以d后面要补7个字节。
总共是24个字节(其中有9个空字节)
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/83IIGNNvW.html
相似回答
C
语言联合体和
结构体
中
变量
所占内存
答:
union U两个成员变量,一个字符数组st占4个字节,一个整型i占4个字节,所以两者共用4个字节,union U占4字节。
struct
A两个成员变量,一个整型
c占
4个字节,一个union
U类型
的u,也占4个字节。所以struct A的大小为两者之和,4+4=8字节。注,因为这些成员变量都是4字节大小,所以不用考虑字节补...
什么是
结构体类型
?
C
语言中结构体类型占几个字节?
答:
} 它占的字节数需要了解内存对齐的问题。内置类型对齐原则 内置类型就是常用的:
char
,short,long,
int
,
float
,
double
.这些内置类型在
结构体
对齐方式,字节为单位 char 1 short 2 long 4 int 4 float 4 fouble 8 结构体对齐原则:取结构体中最长的数据成员作为对齐原则。例如,结构体...
c
语言
结构体
共用体 占内存字节
答:
结构体
中,在内存分配空间时,首先分配联合体的空间4字节,然后当要分配
double
时,发现double的字节对齐方式是8字节对齐,因此double
c变量
不会紧着接联合体的那个变量分配空间,而是会在联合体后空出4字节,然后分配,因此得到16字节=联合体4字节+空的4字节+double8字节 但是如果改成
int
,int的字节对...
struct
std
{char
ch;
int
a[2];
float
t;
double
f
;}
std1; 则
结构体
...
答:
占用
24字节.
char
型占用1字节,int与
float
为4,double型为8.1+3+2*4+4+8=24.1后面加的那个3,是为了让字节对齐.
C
语言
结构体
所
占用
的字节数如何计算
答:
结构体
的数据类型的有点多我们就不啰嗦了,直接来看相同数据结构体的几种书写的格式吧。格式一:01.
struct
tagPhone02.{03.
char
A;
04.
int
B;
05. short C;06.}Phone;格式二:01.struct tagPhone02.{03. char A;04. short C;05. int B;06.}Phone2;...
C
语言,
结构体
问题?所占内在字节数,怎么算的???
答:
结构体
的长度等于体内各个成员变量长度之后。如此题长度为字符串数组的长度加上两个int型变量的长度,再加上double长度,最后结果为10+2+2+8=22。解析:
char
每个字符占一个字节(因为是一个十长度的字符数组)所以是10字节,
int占
两个字节,
double占
8个字节。所以最后是10+2*2+8=22。共用体的长度...
结构体变量
中,
int占
多少字节?
答:
解释:
结构体
中
char
, int 两个字节数(整体),与下面的
double
对齐。所以char ,int 整体字节数要凑够8 。所以最后结果: 8 + 8 = 16 例四、char ,double, int对齐;include <stdio.h>
struct
node
{
char
a;
double
c;
int
b;};int
main(){ struct node QING; printf("%d\n",...
大家正在搜
double int float
intdoublefloat区别
intdoublefloat运算
intdoublefloat字节
float double 区别
c语言float转换为int
double与float
scanf和printf的区别
int float