第9讲-结构体指针结构体与函数课件.ppt

上传人(卖家):ziliao2023 文档编号:5874591 上传时间:2023-05-13 格式:PPT 页数:15 大小:343.51KB
下载 相关 举报
第9讲-结构体指针结构体与函数课件.ppt_第1页
第1页 / 共15页
第9讲-结构体指针结构体与函数课件.ppt_第2页
第2页 / 共15页
第9讲-结构体指针结构体与函数课件.ppt_第3页
第3页 / 共15页
第9讲-结构体指针结构体与函数课件.ppt_第4页
第4页 / 共15页
第9讲-结构体指针结构体与函数课件.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、1第9讲 结构体与指针、函数本讲内容:本讲内容:(1)结构体类型的指针变量结构体类型的指针变量(2)结构体与函数结构体与函数27.4.1 指向结构体变量的指针1.定义定义struct student char name20;int age;int s1,s2;stu=Mary,19,78,86;struct student *p;p=&stu;struct 结构体名结构体名*结构体变量名结构体变量名Mary197886stu2010203020342038p2010结构体的地址为结构体结构体的地址为结构体第一个成员的地址。第一个成员的地址。p=&stu.name;是否可以?是否可以?不可以,类

2、型不匹配。不可以,类型不匹配。p=(struct student*)&stu.name;改为:改为:37.4.1 指向结构体变量的指针2.成员的引用格式成员的引用格式(1)结构体变量名结构体变量名.成员名成员名 stu.age(2)(*指针变量名指针变量名).成员名成员名 (*p).age(3)指针变量名指针变量名-成员名成员名 p-age指向运算符指向运算符p-age+分析:分析:+p-age等价于等价于(p-age)+等价于等价于+(p-age)不等于不等于(+p)-agep-age类型?类型?不是指针类型不是指针类型struct student char name20;int age;i

3、nt s1,s2;struct student stu,*p;p=&stu;gets(stu.name);(*p).age=21;p-s1=87;p-s2=90;41.定义定义 struct student a3,*p;7.4.2 指向结构体数组的指针2.使用使用for(p=a;pname);scanf(%d%d%d,&p-age,&p-s1,&p-s2);赋初值为数组名赋初值为数组名p+表示使指针指向表示使指针指向下一个下一个结构体,而结构体,而不是下一个成员不是下一个成员Mary217886Alex209080Mike197568st0st1st2ppp57.4.2 指向结构体数组的指针思

4、考:思考:1.(+p)-age先使先使p加加1,然后的到,然后的到p-age的值的值先得到先得到p-age的值,然后使的值,然后使p加加12.(p+)-age3.+p-age4.p-age+先使先使p-age,然后的到,然后的到p-age的值的值先得到先得到p-age的值,然后使的值,然后使p-age加加161.函数实参和形参都用结构体变量函数实参和形参都用结构体变量,参数之间为参数之间为值传递值传递 实参结构体变量实参结构体变量各成员的值依次传给各成员的值依次传给形参结构体变量形参结构体变量7.5.1 结构体变量作为函数参数 struct student char name20;int ag

5、e;int s1,s2;void main()struct student stu=Alex,22,98,100;aaa(stu);printf(%d,stu.age);void aaa(struct student sss)sss.age=33;nameages1s2Alex2298100nameages1s2stusssAlex22981003377.5.1 结构体变量作为函数参数例例1 输入任意日期,计算该天是本年中第几天。使用函数计算输入任意日期,计算该天是本年中第几天。使用函数计算天数。天数。分析:分析:1.日期如何表示日期如何表示?定义日期结构体。定义日期结构体。struct da

6、te int year;int month;int day;2.函数如何设计函数如何设计?函数形参(输入):函数形参(输入):日期结构体变量日期结构体变量函数返回值(输出):函数返回值(输出):天数天数int fun(struct date d)函数原形:函数原形:87.5.1 结构体变量作为函数参数3.如何计算如何计算?如如 1999.2.1231 +12如如 1999.3.1331+28+13 如如 2000.3.1331+29+13 天数天数=前几个月份天数之和前几个月份天数之和+当月第几天当月第几天考虑闰年考虑闰年如何计算前几个月天数之和?如何计算前几个月天数之和?for(i=1;id

7、.month;i+)switch(i)case 1:case 3:case 5:case 7:case 8:case 10:case 12:t=31;break;case 4:case 6:case 9:case 11:t=30;break;case 2:if(d.year%4=0&d.year%100!=0|d.year%400=0)t=29;else t=28;days=days+t;97.5.1 结构体变量作为函数参数int fun(struct date d)int days=0,i,t;for(i=1;iage=33;Alex2298100stup100010201024102833

8、sss1000100012例例2 按成绩对学生信息进行从高到底的排序按成绩对学生信息进行从高到底的排序#include#define N 30struct stud int n;char name10;int s;7.5.2 结构体指针作为函数参数void sort(struct stud *p)int i,j;struct stud temp;for(i=0;iN-1;i+)for(j=i+1;js s)temp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;注意进行比较的是元素注意进行比较的是元素sti和和stj的的成绩成员成绩成员s,但但进行进行交换的是元素交换的是元

9、素sti和和stj13void main()int i;struct stud stN;for(i=0;iN;i+)scanf(%d%s%d,&sti.n,sti.name,&sti.s);sort(st);for(i=0;iN;i+)printf(%4d%10s%4d,sti.n,sti.name,sti.s);7.5.2 结构体指针作为函数参数/传递的结构体数组名传递的结构体数组名147.5.3 函数返回值为结构体类型格式:格式:结构体类型结构体类型 函数名(形参表)函数名(形参表)函数体;函数体;例例3 编写函数输入结构体变量,在主函数中输编写函数输入结构体变量,在主函数中输出出 struct student int num;char name20;float score;struct student input()struct student b;scanf(%d%s%f,&b.num,b.name,&b.score);return b;void main()struct student stu;stu=input();printf(%d,%s,%5.2fn,stu.num,stu.name,stu.score);15实验实验:实验:P99 实验实验1(3)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第9讲-结构体指针结构体与函数课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|