在C语言中,已知如下定义,则sizeof(data)的值是( ) union data { int i; char c; double a; } a;

8、 已知如下定义,则sizeof(data)的值是( )
union data {
int i;
char c;
double a;
} a;
A)4 B)5 C)6 D)7
求答案和解释

第1个回答  2013-12-28
选项中没有正确答案,结果应该是8,取联合体中占字节数最大作为联合体的大小追问

我还没有看懂,什么叫“取联合体中占字节数最大作为联合体的大小”?

追答

在这个联合体中int为4个字节,char为1个字节,double为8个字节,联合体一次只能存放一种数据,要满足三种数据都能存就必须满足最大的那个只要最大的那个能存了较小的两个就能存的下

本回答被提问者采纳

在C语言中,已知如下定义,则sizeof(data)的值是( ) union data { int...
选项中没有正确答案,结果应该是8,取联合体中占字节数最大作为联合体的大小

c语言 结构体 共用体 占内存字节
sizeof(union data1)的值为16.在编译器默认设置的情况下,该共用体最大基本类型为double,它占8字节,所以此共用体以8来对齐。字符数组c2占9个字节,那么整个共用体应该占9个字节,但按照对齐原则,实际分配给它的内存为16字节。结构体:struct data以8个字节对齐,long类型的成员1分配8个字节。s、i...

c语言中sizeof的意思是什么下面这道题的答案是什么,请解释一下
sizeof是指这个数据类型分配的单元内存大小,比如int 是4,等等,所以sizeof(struct date)=4+4+4=12, union类型比较特殊,它的长度大小时内部成员中最大的一个的长度,所以sizeof(m)是其中long的值,也就是8

c语言中的共用体是什么?
其定义形式为:\\x0d\\x0aunion 共用体名\\x0d\\x0a{成员表列};\\x0d\\x0a\\x0d\\x0aunion data\\x0d\\x0a{\\x0d\\x0aint a ;\\x0d\\x0afloat b;\\x0d\\x0adoublec;\\x0d\\x0achard;\\x0d\\x0a}obj;\\x0d\\x0a该形式定义了一个共用体数据类型union data ,定义了共用体数据类型...

...#include <stdio.h> union data {int i; char c; }; struct {char...
如果int占2个字节,char a[2]占2个字节, i占2个,d占2个,所以选B 如果int占4个字节,那么因为字节对齐的缘故char a[2]占4个字节, i占4个,d占4个,就共占12个字节

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字节大小,所以不用考虑字节...

...和定义 union dt {int a;char b;double c;}data; 以下叙述中错误的是...
【答案】:C 输出不会是5.0的,因为单精度浮点数和双精度浮点数在内存中的存储形式不一样。

union用法c语言
在C语言中,`union`是一种特殊的数据类型,它允许在相同的内存位置存储不同的数据类型,但一次只能存储其中一种类型的数据。使用`union`可以节省内存,尤其是在需要存储多种类型但每次只使用其中一种类型数据的场景中。`union`的定义方式与`struct`相似,但不同之处在于`union`的所有成员从同一起始地址...

设有说明: union data { int i; struct { int x;chary;
首先得清楚:union所占的内存,是其中的元素中占内存最大的元素的字节数。(因为union内不同元素之间共享同一块内存)struct 所占内存是所有元素占内存之和,并且要考虑内存对齐。struct 是 4 + 1; sizeof(int) + sizeof(char) 然后考虑内存对齐,struct所占内存得是int类型的整数倍,所以是8字节...

C语言中联合和结构有什么区别
又定义联合变量d3,并给它的三个成员分别赋值。当使用printf ( )函数输出dl的三个成员的值时,前两个成员输出值是无意义的,只有最后一个成员是有意义的,其值为3. 7.这说明:某一时刻一个联合变量中只有一个成员起作用,其他成员不起作用。 (2)输出,SizeoE(dl )的值为4,这说明联合...

相似回答