布局体数组的界说和引用(五)
2)指针法
若p指向数组的某一个元素,则p++就指向其后续元素。
3)指针的数组暗示法
若p=student,我们说指针p指向数组student,p[i]暗示数组的第i个元素,其结果与
student[i]等同。对数构成员的引用描写为:p[i].name、p[i].num等。
[例7-4]指向布局体数组的指针变量的利用。
structdata/*界说布局体范例*/
{
intday,month,year;
};
structstu/*界说布局体范例*/
{
char name[20];
long num;
struct data birthday;
};
main()
{inti;
structstu*p,student[4]={{"liying",1,1978,5,23},{"wangping",2,1979,3,14},
{"libo",3,1980,5,6},{"xuyan",4,1980,4,21}};
/*界说布局体数组并初始化*/
p=student;/*将数组的首地点赋值给指针p,p指向了一维数组student*/
printf("\n1—-Outputname,number,year,month,day\n");
for(i=0;i<4;i++)/*回收指针法输出数组元素的各成员*/
printf("%20s%10ld%10d//%d//%d\n",(p+i)->name,(p+i)->num,
(p+i)->birthday.year,(p+i)->birthday.month,
(p+i)->birthday.day);
}