预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

指向结构体类型数组的指针的使用指向结构体类型数组的指针的使用定义一个结构体类型数组,其数组名是数组的首地址,下面是关于指向结构体类型数组的指针的使用具体介绍,欢迎阅读!定义结构体类型的指针,既可以指向数组的元素,也可以指向数组,在使用时要加以区分。[例7-3]在例7-2中定义了结构体类型,根据此类型再定义结构体数组及指向结构体类型的指针。structdata{intday,month,year;};structstu/*定义结构体*/{charname[20];longnum;structdatabirthday;/嵌*套的结构体类型成员*/};structstustudent[4],*p;定/*义结构体数组及指向结构体类型的指针*/作p=student,此时指针p就指向了结构体数组student。p是指向一维结构体数组的.指针,对数组元素的引用可采用三种方法。1)地址法student+i和p+i均表示数组第i个元素的地址,数组元素各成员的引用形式为:(student+i)->name、(student+i)->num和(p+i)->name、(p+i)->num等。student+i和p+i与&student[i]意义相同。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/*定义结构体类型*/{charname[20];longnum;structdatabirthday;};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);}