c语言结构体初始化

发布网友 发布时间:2022-04-23 12:31

我来回答

3个回答

热心网友 时间:2023-10-13 11:29

这个结构体中包含三个变量,num name[20] c
你的结构体初始化只初始化了 name[20]
其余俩个变量没有初始化,所以会报错
你可以这样初始化 struct wo b(1,"jack",'M');
要注意对结构体中所有变量都要初始化,除非这个变量有缺省值追问为什么都必须初始化,谭浩强说C99标准允许对某一成员初始化,什么是缺省值?

追答对某一成员初始化 是这样的对某一成员 比如
你的例子不是struct wo b;
b.name="jack";
b.num=23;
这样是可以对某一成员赋值的
但你的赋值是对整体赋值,你想一想你的定义struct wo b(,"jack",);
另外两个变量怎么办! 除非你定义结构体的时候如下定义
struct wo
{
int num=0; //这就是缺省值
char name[20]="jack";
char c; //这个就没有缺省值,懂了吧
}

热心网友 时间:2023-10-13 11:29

没有吧,我怎么没见过,结构体赋值:struct wo b={10,"aaaa",'b'};或是b.num=10;没见过你写的那样

热心网友 时间:2023-10-13 11:30

这是c99的语法,你的编译器可能不支持c99或你没有打开相应的编译选项

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com