- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9讲 结构体指针、结构体与函数
* * * 第9讲 结构体与指针、函数 本讲内容: (1)结构体类型的指针变量 (2)结构体与函数 7.4.1 指向结构体变量的指针 1. 定义 struct student { char name[20] ; int age ; int s1 , s2 ; } stu = {Mary, 19, 78, 86}; struct student *p ; p = stu ; struct 结构体名 * 结构体变量名 86 78 19 Mary stu 2010 2030 2034 2038 p 2010 结构体的地址为结构体第一个成员的地址。 p = stu.name; 是否可以? 不可以,类型不匹配。 p = (struct student *)stu.name; 改为: 7.4.1 指向结构体变量的指针 2. 成员的引用格式 (1) 结构体变量名. 成员名 stu . age (2) (*指针变量名) . 成员名 (*p) . age (3) 指针变量名 - 成员名 p-age 指向运算符 p-age++ 分析: ++p-age 等价于(p-age)++ 等价于++(p-age) 不等于(++p)-age p - age类型? 不是指针类型 struct student { char name[20] ; int age ; int s1 , s2 ; } ; struct student stu, *p ; p = stu ; gets( stu. name ); (*p). age = 21 ; p-s1 = 87 ; p-s2 = 90 ; 1. 定义 struct student a[3] , *p ; 7.4.2 指向结构体数组的指针 2. 使用 for ( p=a ; pa+3 ; p++ ) { gets( p-name ) ; scanf( %d%d%d ,p-age, p-s1,p-s2); } 赋初值为数组名 p++表示使指针指向下一个结构体,而不是下一个成员 68 75 19 Mike 80 90 20 Alex 86 78 21 Mary st[0] st[1] st[2] p p p 7.4.2 指向结构体数组的指针 思考: 1. (++p)-age 先使p加1,然后的到p-age的值 先得到p-age的值,然后使p加1 2. (p++)-age 3. ++p-age 4. p-age++ 先使p-age,然后的到p-age的值 先得到p-age的值,然后使p-age加1 1. 函数实参和形参都用结构体变量 , 参数之间为值传递 实参结构体变量各成员的值依次传给形参结构体变量 7.5.1 结构体变量作为函数参数 struct student { char name[20] ; int age ; 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; } name age s1 s2 100 98 22 Alex name age s1 s2 stu sss 100 98 22 Alex 33 7.5.1 结构体变量作为函数参数 例1 输入任意日期,计算该天是本年中第几天。使用函数计算天数。 分析: 1. 日期如何表示? 定义日期结构体。 struct date { int year; int month; int day; }; 2. 函数如何设计? 函数形参(输入): 日期结构体变量 函数返回值(输出): 天数 int fun( struct date d) 函数原形: 7.5.1 结构体变量作为函数参数 3. 如何计算? 如 1999.2.12 31 + 12 如 1999.3.13 31 + 28 + 13 如 2000.3.13 31 + 29 + 13 天数 = 前几个月份天数之和 + 当月第几天 考虑闰年 如何计算前几个月天数之和? for (i=1;id.month;i++) { switch (i) { case 1: case 3: case 5: ca
您可能关注的文档
- 第17课 苏联的经济改革 岳麓版.ppt
- 第18课 《美国南北战争》教学设计.doc
- 第19课《美国南北战争》教案1.doc
- 第1~5章 采购战术与采购运营基础.doc
- 第18章 广域网(WAN).doc
- 第1章 概述 Oracle_ch01.ppt
- 第1章 乳的成分和性质.ppt
- 第1章 二维线性系统及其傅里叶分析2.ppt
- 第1章(矢量分析).pdf
- 第1章_信号与系统的基本概念_1.8离散时间系统的时域分析.ppt
- 2024年度党员干部民主生活会班子对照检查材料.docx
- 公司党委领导班子2024年度民主生活会对照检查材料4个带头方面.docx
- 市府办(政府办)领导班子2024年民主生活会会后综合情况报告.docx
- 在2025年市司法局信息宣传工作推进会上的讲话.docx
- 在2025年全省文化旅游高质量发展推进会上的讲话.docx
- 在2025年全区工业、住建大规模设备更新推进会上的讲话.docx
- 党支部2024年组织生活会民主评议党员情况总结报告_1.docx
- 2024年度组织生活会个人对照检查剖析材料.docx
- 镇党委书记2024年度民主生活会对照检查材料1.docx
- 党支部2024年组织生活会民主评议党员情况总结报告.docx
最近下载
- 小学二年级下册数学解决问题练习题.pdf VIP
- 2025年食品安全知识考试题库及答案.docx VIP
- 中职英语(高教版)基础模块一Unit6 Food and Drinks Listening and Speaking-优质教学课件PPT.pptx VIP
- 通过戏剧教育提升学生审美能力的研究教学研究课题报告.docx
- 年产运动鞋 400 万双项目环境影响报告表(2021年新版环评).pdf VIP
- 理光MPC3004 3504 4504 6004SP维修手册.pdf VIP
- 院感知识培训课件手卫生.pptx
- 居家用电安全知识ppt课件(完整内容).pptx VIP
- 2025年宜春职业技术学院单招职业适应性测试题库及一套完整答案.docx VIP
- 课题开题报告:新质生产力驱动下技能竞赛优化五育融合育人模式的实践研究.docx VIP
文档评论(0)