首页题目详情
以下关于结构体的初始化,哪项是不正确的?

A.struct Student { int id; char name[20]; }; struct Student s = {1001};
B.struct Student { int id; char name[20]; }; struct Student s = { .id = 1001 };
C.struct Student { int id; char name[20]; }; struct Student s = { 1001, "Tom" } ;
D.struct Student { int id; char name[20]; }; struct Student s = { .id = 1001, .name = "Tom" };
优质解答
答案
A
解析
结构体成员初始化时,若只部分初始化,剩余成员默认初始化为0或空字符串。但是,选项A中没有提供name成员的初始值,若其为char数组,初始化为0即可,但数组内元素默认为0,意味着name为'\0',这实际上与未初始化是等效的,因此代码虽然可以运行,但初始化方式不规范。
C语言程序设计单选题中等AI生成