选择以下程序的最佳陈述:
#include "stdio.h"
int main()
{
union {int i1; int i2;} myVar = {.i2 =100};
printf("%d %d",myVar.i1, myVar.i2);
return 0;
}
(A)由于初始化语法不正确而导致编译错误。
(B)没有编译错误,它将显示“ 0 100”。
(C)没有编译错误,它将显示“ 100 100”。答案: (C)
说明:由于联合的字段/成员共享相同的内存,因此i1和i2都引用相同的位置。另外,由于i1和i2属于同一类型,因此初始化一个会隐式地初始化另一个。因此答案是C。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。