C结构初始化?

时间:2010-07-05 05:30:56

标签: c initialization structure

如果结构中的一个字段本身是一个结构,我如何初始化结构?

3 个答案:

答案 0 :(得分:14)

你需要使用更多大括号(实际上,它们是可选的,但是GCC最近会发出警告)。这是一个例子:

struct s1 { int a; int b; };
struct s2 { int c; struct s1 s; };

struct s2 my_s2 = { 5, { 6, 3 } };

答案 1 :(得分:1)

结构嵌套

如果结构中的一个字段本身就是一个结构

,则可以初始化结构
struct add{
    int house;
    char road;
};
struct emp{
    int phone;
    struct add a;
};

struct emp e = { 123456, 23, "abc"};
printf("%d %d %c",e.phone,e.a.house,e.a.road);

答案 2 :(得分:0)

struct A
{
int n;
}

struct B
{
A a;
} b;

您可以通过以下语句初始化n。这就是你要找的东西。

b.a.n = 10;