方法一:直接对第一个结构体赋初值,第二个结构体进行调用。
#include<stdio.h>
struct da
{
int month;
int day;
int year;
}de={99,22,33};
struct
{
int name;
int sex;
int class;
struct da *birth; //结构体指针
}infor={1,2,3,&de}; //此处要对地址进行操作
int main()
{
printf("%d\n",infor.name);
printf("%d\n",de.year);
printf("%d %d %d\n",*infor.birth);
}
结果:
方法二:直接在第二个结构体赋初值:
#include<stdio.h>
struct da
{
int month;
int day;
int year;
};
struct
{
int name;
int sex;
int class;
struct da birth;
}infor={1,2,3,{11,22,33}};
int main()
{
printf("%d\n",infor.name);
printf("%d %d %d\n",infor.birth);
printf("%d\n",infor.birth.year);
}
结果:
C语言结构体初始化的两种方法
这篇博客探讨了在C语言中初始化结构体的两种方法。第一种方法是直接对第一个结构体进行赋值,然后在后续结构体中调用。第二种方法则是直接在第二个结构体中进行赋值。文章通过示例展示了这两种方法的不同效果。

被折叠的 条评论
为什么被折叠?



