当前位置: 首页 > 问答 > 精选 > 正文
问题
设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; D

设有以下说明和定义:

typedef union {long i; int k[5]; char c;} DATE;

struct data { int cat; DATE cow; double dog;} too;

DATE max;

则语句 printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____

参考答案
正确答案:
答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20
data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.
所以结果是 20 + 32 = 52.
当然...在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20

您可能感兴趣的试题
  • 设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; D

  • 一个链串的节点类型定义为#define NodeSize 6typedef struct node{ char data[NodeSize];struc

  • 设有关系模式日(SC,SN,SA)、S(CP,CW),则SQL语句“SELECT*FORM. R UNION SELECT*FROM S”实现的功能

  • (28 )设有定义 double a[10] , *s=a ; ,以下能够代表数组元素 a[3] 的是A ) (*s ) [3]B ) * (

  • C语言中,定义结构体的保留字是()。A:unionB:structC:enumD:typedef

  • (28 )设有定义 double a[10] , *s=a ; ,以下能够代表数组元素 a[3] 的是A ) (*s ) [3]B ) * (