struct date
{
int year;
int month;
int day;
};
struct student
{
int num;
char name[10];
struct date birthday;
};
void main()
{
int i;
struct student stu[4]={{001,"luoyi",1989,06,23}, //定义结构数组并定义
{002,"xiaoli",1990,01,27},
{003,"zengtao",1993,07,28},
{004,"chen",1991,10,23}};
struct student *p;
p=stu; //定义结构指针变量并使其指向结构数组首地址
printf("1--(下标法)学好 姓名 出生日期:\n");
for(i=0;i<4;i++)
{
printf(" %d %8s %d-%d-%d\n",(stu+i)->num,(stu+i)->name,(stu+i)->birthday.year,(stu+i)->birthday.month,(stu+i)->birthday.day);
}
printf("2--(下标法)学好 姓名 出生日期:\n");
for(i=0;i<4;i++)
{
printf(" %d %8s %d-%d-%d\n",stu[i].num,stu[i].name,stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day);
}
printf("3--(指针法)学好 姓名 出生日期:\n");
for(i=0;i<4;i++)
{
printf(" %d %8s %d-%d-%d\n",(*(p+i)).num,(*(p+i)).name,(*(p+i)).birthday.year,(*(p+i)).birthday.month,(*(p+i)).birthday.day);
}
printf("4--(指向运算符)学好 姓名 出生日期:\n");
for(i=0;i<4;i++)
{
printf(" %d %8s %d-%d-%d\n",(p+i)->num,(p+i)->name,(p+i)->birthday.year,(p+i)->birthday.month,(p+i)->birthday.day);
}
} 在此程序中,为什么第一个下标法无法用'.'? 第二个下标法无法用‘->' ? 当嵌套时,引用嵌套里的成员,如(stu+i)->birthday.year,在birthday与year之间只能用'.'吗? 实在是有点糊涂了,请高手指教~~~
都说的太片面,没有说到点上~~~