的结构是:我不理解这个嵌套结构
struct
{
int x;
struct
{
int y, z;
} nested;
}
i={.nested.y = 5, 6, .x = 1, 2};
问题:其结果是i.nested.y = 2; i.nested.z = 6;
我不明白这一点,内部也是一个结构,但工会,所以任何人都可以帮助我吗?
的结构是:我不理解这个嵌套结构
struct
{
int x;
struct
{
int y, z;
} nested;
}
i={.nested.y = 5, 6, .x = 1, 2};
问题:其结果是i.nested.y = 2; i.nested.z = 6;
我不明白这一点,内部也是一个结构,但工会,所以任何人都可以帮助我吗?
好吧,首先让我说,这是一个可怕的方式来初始化一个结构,如果这是一个家庭作业的问题 - 它也不是一个很好的。然而,考虑到手头的问题,我认为在初始化过程中发生了这样的事情:首先,y被初始化为5,并且作为结构中下一个成员的z被初始化为6.然后,x被初始化为1,并且结构中的下一个成员(在本例中为y)初始化为2(即覆盖5)。
重要的是要注意,嵌套结构不是联合体,而是结构 - 首先,因为这就是代码所说的,但也因为如果它是一个联合 - 这是不可能的在这种情况下,y和z具有不同的值,因为两者都将保存在内存中的相同位置。
是的,你是对的,我明白了,Thx。 – kevinwei 2012-04-15 11:20:32
可能重复[C结构初始化](http://stackoverflow.com/questions/17464822/c-structure-initialization) – alk 2013-07-04 09:19:59