设有以下说明和定义: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