prss.net
当前位置:首页 >> #inCluDE <stDio.h> union DAtE{ int i; ChAr C; F... >>

#inCluDE <stDio.h> union DAtE{ int i; ChAr C; F...

对于计算机而言,打印输出的结果为266 内存中数据为0x0A,0x01,按16位整型解析即为0x010A即266. 这题目考核的是联合体的基本概念,以及计算机的端模式(x86架构为小端模式)。 对于大端模式的硬件架构,则结果将会截然不同。

不能初始化成员,他们占用了同一储存单元b选项

A 按其中最大的 算 double 8 毫无争议最大 那么 a[2] 就是两个8 16个

如果int占2个字节,char a[2]占2个字节, i占2个,d占2个,所以选B 如果int占4个字节,那么因为字节对齐的缘故char a[2]占4个字节, i占4个,d占4个,就共占12个字节

sizeof(max)是求max类型的大小,max的类型是union结构,在union结构中所有变量共用同一个空间,在这个union中,i占4 个字节,k[5] 占20个字节,c占1个字节,因为是共用同一个空间,所以union 的大小按最大的变量k[5]来算,占20个字节。 在struc...

为赋值时,默认栈中结果为0xcccccccc,i[0]和i[1]赋值38和39后,一部分字节赋值,int为4字节,所以输出cccc3839

首先呢,变量a是一个共用体变量....这个共用体里面呢有两种数据类型, 一种是 struct 另外一种是int .. struct里面有3个int 所以,这个共用体的大小是...

首先,结果是“98765432 0”。 因为: union 共用体是以内部成员占用空间最大的那个来分配内存空间。因此该共用体是以int i[2]的长度来申请内存(8个字节) union 共用体中所有的成员的起始地址是一样的。 赋值语句s->j=0x98765432; 使得共用体所...

#include typedef union { int i; char c[2]; }A; int main(){ A a; a.i=0; a.c[0] =1; a.c[1] =2; printf("%d%d\n", a.c[0],a.c[1]); printf("%d %x\n",a.i, a.i); //getchar(); return 0; } 输出为: 12 513 201 a.c[0]为i的低八位,a.c[1]是...

看这个写法上 应该指的16位机 所以 a[2] b c[4]占的都是4个字节的空间 就像你说的 存放的数据都是16进制的 0x39 0x38 但由于int占两个字节 ...

网站首页 | 网站地图
All rights reserved Powered by www.prss.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com