📜  C测验– 112 |问题4

📅  最后修改于: 2021-07-02 15:05:38             🧑  作者: Mango

选择以下程序的最佳陈述:

#include "stdio.h"
  
int main()
{
 struct {int i; char c;} myVar = {.c ='A',.i = 100};
 printf("%d %c",myVar.i, myVar.c);
 return 0;
}

(A)编译错误,因为已提及结构类型(包含两个不同类型的字段,即int和char)以及该结构类型的myVar的定义。
(B)由于myVar初始化语法不正确而导致编译错误。基本上,在没有myVar的情况下使用了运算符成员(即dot)。
(C)编译错误不仅针对B,而且针对myVar中字段的不正确顺序,即字段c首先被初始化,然后字段i被初始化。
(D)没有编译错误,它将显示100A。答案: (D)
说明:根据C语言,可以在定义自身时完成完整数据类型的变量的初始化。此外,根据C,可以使用字段名称和不带myVar的点运算符来无序初始化struct字段/成员,按C即可。正确答案为D。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。