A.a={'x',10};
B.a.x=10;a.x++;
C.a.ch='x';a.ch++;
D.a.x=10;a.ch='x';
便解释错误的原因
共用体变量定义为"union data{char ch;int x;}a;",下列错误的是
A错误,因为ch和x共用一个内存空间,所以叫做共用体。但是它有多大呢? 在某些系统int是4个字节的,char是1个字节。所以a就是最大的那个,也就是4个字节,这样的话既可以装下int类型的x,也可以装下ch。找工作的时候,考这个喔,呵呵。
已知定义了如下共用体变量:union date {int i; char ch; float f;}b...
union date {int i; char ch; float f;}b,共用体占四个字节,struct{int x; float f}是8个字节,int与float在32位系统都是占用四个字节
共用体变量定义如下:union un1{int i; char ch[2];}a...
回答:呵呵,这个蛮有意思。 这个共用体,实际上表示,i的低2字节,分别是ch[1]和ch[0],类似于i='AB',之所以结果不是4042。是因为,char占用1个字节,需要考虑前导0的问题。 字符A、B的十进制值分别是40和42,换成二进制,分别是: A:101010 加上前导0:00101010 B:101000 加上前导0:00101000 组合...
union u_type {int x; float y[3]; char z; }a; 则变量a的长度是...
这是一个共用体,共用体变量的长度是共用体中最长成员的长度,即为float y[3]的长度4*3=12位 共用体变量中每一时刻只有一个成员起作用,因为各个成员共用了一个地址空间,每时只能有一个成员使用变量的地址空间
关于共用体变量
\/*整理一下定义的公用体*\/union A { int b;char c;float d;}a={65};在这里公用体变量a为4字节,对公用体变量a的成员赋初值为65,等价于a.b=65;成员b在这里定义为有符号整数类型int,且int占据整个变量a的4字节内存空间,而有符号整数在计算机内使用原码表示,是[65]原=(0000 0000 0000 ...
union u_type {int x; float y[3]; char z; }a; 则变量a的长度是...
这是一个共用体,共用体变量的长度是共用体中最长成员的长度,即为float y[3]的长度4*3=12位 共用体变量中每一时刻只有一个成员起作用,因为各个成员共用了一个地址空间,每时只能有一个成员使用变量的地址空间
C语言共同体的问题 union dt{int a;char b;double c;}data;_百度...
(1)共同体在内存中共用一块存储空间,(2)空间的大小由共同体中占用空间最大的变量所决定 (3)输出时,按相应的类型进行数值解析。int 占4个字节 char 占一个字节 double占8个字节 所以data所占空间为8字节。data.a=5;在内存中存储的是二进制格式,X86机器上,低位在前形如:00000101 ...
union{ char c [2]; int x;}s; 共用体问题,请知道的说下为什么和答案...
首先s占4个字节,c[2]占2个,x占4个,选较大的。一般的机器在内存中存储数据都是小端模式,即先存储地位的数据(地址从小到大,假设地址的4个字节编号为1 2 3 4),所以s.x = 0x4241,1号存储41,2号存储42,3号和4号存储0. s.c[0]就是1号地址的内存,十进制即为65,s.c[1]就是2...
...{ union EXAMPLE { struct {int x,y; }in; int a,b; }e; e.a=1...
在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。e.a=1;e.b=2;\/\/现在e只能存储一个成员变量的值e.b=e.a=2 e.in.x=(e.a)*(e.b); \/\/e里的in成员里的x成员=2*2=4 \/\/现在e只能存储一个成员变量的值e.b=e.a=4 e.in.y=(e.a)+(e.b...
共用体的定义
union 共用体名{成员表列}变量表列; union data{int i;char ch;float f;}a,b,c;