dabentudou
dabentudou
采纳率100%
2016-01-14 16:20

若有如下定义,则 printf(“%d\n”, sizeof(them));的输出是

已采纳

若有如下定义,则 printf(“%d\n”, sizeof(them));的输出是( )
typedef union { long x[2];int y[4];char z[8];} MYTYPE;MYTYPE them;

①32 ②16 ③8 ④24

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • caozhy 从今以后生命中的每一秒都属于我爱的人 5年前

    选③8

    点赞 1 评论 复制链接分享
  • yamizZ Yummy? 5年前

    看多少位操作系统吧,因为union分配内存长度为最长成员所占字节数,32位下long为4,64位下为8

    点赞 评论 复制链接分享
  • 91program 91program 5年前

    union 是联会体,取最大的一个变量。此例为 long x[2];
    如果是 32 位的系统答案为 8;但如果是 64 位系统,可能就是 16;再加上不同的编译器,对 long 数据类型的长度也可能不相同!所以,此问题出的不严密,至少也要说明一下是多少位的系统吧。

    点赞 评论 复制链接分享

相关推荐