1、 C C语言程序设计语言程序设计指针也可指向结构体数据的存储单元。指针也可指向结构体数据的存储单元。n结构体指针变量的定义:结构体指针变量的定义:struct 结构体名结构体名 *指针变量名;指针变量名;例如:例如:struct student*pt=&stu;n通过指针访问结构体成员通过指针访问结构体成员1)(*p).num=110;2)p-num=110;struct student int num;char name20;char sex;int age;stu;第第9章章 结构体与共用体结构体与共用体指针与结构体指针与结构体 C C语言程序设计语言程序设计第第9章章 结构体与共用体结构
2、体与共用体指针与结构体指针与结构体使用结构体指针变量引用成员形式使用结构体指针变量引用成员形式(*结构体指针名结构体指针名).成员名成员名结构体指针名结构体指针名-成员名成员名结构体变量名结构体变量名.成员名成员名struct student int num;char name20;char sex;int age;stu;struct student *p=&stu;(*p).nump-numstu.numagesexnamenumstup C C语言程序设计语言程序设计第第9章章 结构体与共用体结构体与共用体指针与结构体指针与结构体例:结构体指针的使用#include#include st
3、ruct student int num;char name20;char sex;int age;main()struct student stu,*p;p=&stu;stu.num=10011;strcpy(stu.name,Yao Ming);p-sex=M;p-age=27;printf(nNo:%dnname:%snsex:%cnscore:%dn,(*p).num,p-name,stu.sex,p-age);C C语言程序设计语言程序设计第第9章章 结构体与共用体结构体与共用体指针与结构体指针与结构体例例:结构体数组指针的使用结构体数组指针的使用struct student int
4、 num;char name20;char sex;int age;stu3=10101,Li Lin,M,18,10102,Zhang Fun,M,19,10103,Wang Min,F,20;main()struct student*p;for(p=stu;pnum,p-name,p-sex,p-age);10101Li LinM18stu0pstu1stu2p+1p+210102Zhang FunM1910103Wang MinF20 C C语言程序设计语言程序设计第第9章章 结构体与共用体结构体与共用体结构体变量作为函数参数结构体变量作为函数参数struct data int a,b,
5、c;void func(struct data parm)printf(%d,%d,%dn,parm.a,parm.b,parm.c);parm.a=18;parm.b=5;parm.c=parm.a*parm.b;printf(%d,%d,%dn,parm.a,parm.b,parm.c);main()struct data arg;arg.a=27;arg.b=3;arg.c=arg.a+arg.b;printf(%d,%d,%dn,arg.a,arg.b,arg.c);func(arg);printf(%d,%d,%dn,arg.a,arg.b,arg.c);27330(func)30C
6、OPY327(main)185arg90parm C C语言程序设计语言程序设计第第9章章 结构体与共用体结构体与共用体结构体变量作为函数参数结构体变量作为函数参数struct data int a,b,c;void func(struct data *parm)printf(“%d,%d,%dn,parm-a,parm-b,parm-c);parm-a=18;parm-b=5;parm-c=parm-a*parm-b;printf(%d,%d,%dn,parm-a,parm-b,parm-c);main()struct data arg;arg.a=27;arg.b=3;arg.c=arg.a+arg.b;printf(%d,%d,%dn,arg.a,arg.b,arg.c);func(&arg);printf(%d,%d,%dn,arg.a,arg.b,arg.c);指针指针parm27330(func)(main)185arg90C语言程序设计谢谢大家!谢谢大家!