第9讲 结构体指针、结构体与函数

第9讲 结构体指针、结构体与函数

ID:44963046

大小:343.50 KB

页数:15页

时间:2019-11-06

第9讲 结构体指针、结构体与函数_第1页
第9讲 结构体指针、结构体与函数_第2页
第9讲 结构体指针、结构体与函数_第3页
第9讲 结构体指针、结构体与函数_第4页
第9讲 结构体指针、结构体与函数_第5页
资源描述:

《第9讲 结构体指针、结构体与函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第9讲结构体与指针、函数本讲内容:(1)结构体类型的指针变量(2)结构体与函数7.4.1指向结构体变量的指针1.定义structstudent{charname[20];intage;ints1,s2;}stu={"Mary",19,78,86};structstudent*p;p=&stu;struct结构体名*结构体变量名Mary197886stu2010203020342038p2010结构体的地址为结构体第一个成员的地址。p=&stu.name;是否可以?不可以,类型不匹配。p=(structstudent*)&stu.name;改为:

2、7.4.1指向结构体变量的指针2.成员的引用格式(1)结构体变量名.成员名stu.age(2)(*指针变量名).成员名(*p).age(3)指针变量名->成员名p->age指向运算符p->age++分析:++p->age等价于(p->age)++等价于++(p->age)不等于(++p)->agep->age类型?不是指针类型structstudent{charname[20];intage;ints1,s2;};structstudentstu,*p;p=&stu;gets(stu.name);(*p).age=21;p->s1=87;p->

3、s2=90;1.定义structstudenta[3],*p;7.4.2指向结构体数组的指针2.使用for(p=a;pname);scanf("%d%d%d",&p->age,&p->s1,&p->s2);}赋初值为数组名p++表示使指针指向下一个结构体,而不是下一个成员Mary217886Alex209080Mike197568st[0]st[1]st[2]pp'p''7.4.2指向结构体数组的指针思考:1.(++p)->age先使p加1,然后的到p->age的值先得到p->age的值,然后使p加12.(p

4、++)->age3.++p->age4.p->age++先使p->age,然后的到p->age的值先得到p->age的值,然后使p->age加11.函数实参和形参都用结构体变量,参数之间为值传递实参结构体变量各成员的值依次传给形参结构体变量7.5.1结构体变量作为函数参数structstudent{charname[20];intage;ints1,s2;};voidmain(){structstudentstu={"Alex",22,98,100};aaa(stu);printf("%d",stu.age);}voidaaa(structst

5、udentsss){sss.age=33;}nameages1s2Alex2298100nameages1s2stusssAlex2298100337.5.1结构体变量作为函数参数例1输入任意日期,计算该天是本年中第几天。使用函数计算天数。分析:1.日期如何表示?定义日期结构体。structdate{intyear;intmonth;intday;};2.函数如何设计?函数形参(输入):日期结构体变量函数返回值(输出):天数intfun(structdated)函数原形:7.5.1结构体变量作为函数参数3.如何计算?如1999.2.1231+1

6、2如1999.3.1331+28+13如2000.3.1331+29+13天数=前几个月份天数之和+当月第几天考虑闰年如何计算前几个月天数之和?for(i=1;i

7、

8、d.year%400==0)t=29;elset=28;}days=days+t;}

9、7.5.1结构体变量作为函数参数intfun(structdated){intdays=0,i,t;for(i=1;i

10、ays);}structdate{intyear;intmonth;intday;};输入日期传递整个日期结构体到函数定义日期结构体7.5.2结构体指

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。