早教吧 育儿知识 作业答案 考试题库 百科 知识分享

c语言大神求指导若有以下说明,则下面哪个叙述是正确的(已知short占2个字节,float占4个字节)。struct{shorta;floatb;}v1;union{shorta;floatb;}v2;得分/总分A.执行sizeof(v1)获得的

题目详情
c语言 大神求指导

若有以下说明,则下面哪个叙述是正确的(已知short占2个字节,float占4个字节)。


  1. struct 
  2. {   
  3.     short a;
  4.     float b;
  5. } v1;


  1. union 
  2. {   
  3.     short a;
  4.     float b;
  5. } v2;

得分/总分

  • A.

    执行sizeof(v1)获得的结果是6个字节,只能对结构体变量v1中的第一个成员进行初始化。

  • B.

    执行sizeof(v2)获得的结果是8个字节,只能对共用体变量v2中的第一个成员进行初始化

  • C.

    执行sizeof(v1)获得的结果是8个字节,对结构体变量v1中的任何一个成员都可以进行初始化。

  • D.

    执行sizeof(v2)获得的结果是6个字节,只能对共用体变量v2中的第一个成员进行初始化。


▼优质解答
答案和解析
A是错的。事实上可以给两个成员分别初始化,互不影响。
B是错的。sizeof(v2)应该4(b占用的字节数)。
C不准确。平台的对齐方式是4时,是对的,否则,就是错的。
D是错的。执行sizeof(v2)获得的结果是4个字节。