#include<stdio.h>
struct date
{
struct time
{
int sec;
int min;
int hrs;
};
int day;
int month;
int year;
};
int main(void)
{
stuct date d,*dp=NULL;
dp=&d;
}
现在使用结构指针dp我想访问结构时间sec的成员。我该怎么办?
答案 0 :(得分:1)
您需要在struct time
中创建struct date
类型的成员,然后才能从sec
类型的对象访问struct time
的{{1}}成员
您可以选择不为嵌套的struct date
命名,但您需要一名成员。
struct
答案 1 :(得分:0)
嵌套结构基本上是结构内的结构。在您的示例中,memset(foo, 0, sizeof(foo));
是struct time
的成员。
访问结构成员的逻辑将保持不变。即您访问struct date
的成员day
的方式。
但是在这里你需要为struct date
创建结构变量才能访问其成员。
如果要访问嵌套结构的成员,则它看起来像
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);
}