嵌套结构基本上是一个结构内的结构。在你的例子中,struct time
是struct date
的成员。 访问结构成员的逻辑将保持不变。即您访问struct date
的会员day
的方式。
但在这里您需要创建struct time
的结构变量才能访问其成员。
如果您想访问嵌套结构的成员,然后它看起来像,
dp->time.sec // dp is a ptr to a struct date
d.time.sec // d is structure variable of struct date
您可以检查下面的代码,
#include<stdio.h>
struct date
{
struct time
{
int sec;
int min;
int hrs;
}time;
int day;
int month;
int year;
};
int main(void)
{
struct date d = {1,2,3,4,5,6}, *dp;
dp = &d;
printf(" sec=%d\n min=%d\n hrs=%d\n day=%d\n month=%d\n year=%d\n",dp->time.sec, dp->time.min, dp->time.hrs, dp->day, dp->month, dp->year);
}
输出:
sec=1
min=2
hrs=3
day=4
month=5
year=6
你打算在'struct date'中有'struct time'类型的成员?如果是这样,你没有命名它,你写的东西不能编译。 – e0k