网站大量收购独家精品文档,联系QQ:2885784924

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

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

cgtk187 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档