选择以下程序的最佳陈述:
#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基础课程》。