- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
箭头(指向成员)运算符:- (减号大于号) 优先级和结合性: 1级,自左而右; 作用:通过指向结构体变量的指针来访问结构体变量的成员。 如: p-score:访问p所指向变量的score成员; p-name[i]:访问p指向变量的name成员第i个元素。 §11.6指针与结构体 1. 指向结构体变量的指针 一个结构体变量的指针是该变量存储区域的起始地址,它指向结构体这个整体。 在程序中可定义一个指向同类型结构体的指针变量,并将该指针变量指向某结构体变量,之后便可利用指针变量访问各成员。 【例】利用结构体指针,对某学生基本情况赋值并输出。 #include stdio.h struct student { long num; char name[20]; float score; }; void main( ) { struct student stu1, *p; stu1.num=99001; strcpy(stu1.name, Li Feng); stu1.score=89.5; p=stu1; 89.5 99001 p name[0] name[1] ┇ name[19] 468 472 473 ┇ 491 492 stu1 stu1 printf(num:%ld\n, (*p).num); printf(name:%s\n, (*p).name); printf(score:%7.2\n, (*p).score); } 括号不能少 printf(num:%ld\n, p-num); printf(name:%s\n, p-name); printf(score:%7.2f\n, p-score); 说明: 1) 当p=stu1; (*p).num表示访问p所指向变量的num成员; 其中:*号为2级,括号可保证先使p与*结合。 2) 当p=stu1; stu1.num ? (*p).num ? p-num 2. 用结构体指针变量访问结构体数组元素 【例】输入/输出三位学生基本情况,计算平均成绩 stu[0] stu[1] stu[2] 99001 Li Feng 89.5 99002 Wang Yi 70.5 99003 Zhao Hui 92.0 stu p #include stdio.h #include math.h struct student { long num; char name[20]; float score; }; void main( ) { struct student *p, stu[3]; int i; float sum=0; for(i=0; i3; i++) /*输入所有数据*/ { printf(\t%d number name score:, i+1); scanf(%ld%s%f, stu[i].num, stu[i].namestu[i].score); } for(p=stu; pstu+3; p++) /*输出所有数据*/ printf(\t%-8ld%-20s%-7.2f\n, p-num, p-name, p-score); for(p=stu,i=0; i3; i++) /*p不变*/ sum=sum+(p+i)-score; /*累加成绩*/ printf(\taverage=%-7.2f\n, sum/3.0); } 说明: 1) 若p=stu; p++的增量为元素类型长28,从而使 p指向下一个元素; 2) 当p=stu; 且保持不变时, p+i的值:stu+i×元素类型长 =stu+i×28 p+i含义:数组元素str[i]的地址; 即: p+i ? stu+i ? stu[i]:结构体数组元素指针; (*(p+i)).num ? (p+i)-num ? str[i].num ; 1) 用结构体变量作参数 2) 用指向结构体的指针变量作参数
您可能关注的文档
最近下载
- 淘股吧高手语录.docx VIP
- 2024~2025学年上学期七年级第一次月考数学试题(含答案).pdf VIP
- GB-T6284-1986化工产品中水分含量测定的通用方法重量法.pdf
- MSC:人工智能赋能可持续发展和投资白皮书.pdf VIP
- 24J306 窗井、设备吊装口、排水沟、集水坑图集.docx VIP
- 2014年深圳市坪山新区主要病媒生物监测及白纹伊蚊抗药性研究.pdf VIP
- T∕CBDA 69-2023 建筑装饰装修碳排放计算标准.pdf
- 国际私法(暨南大学)中国大学MOOC 慕课 章节测验 期末考试答案.docx VIP
- 金风2.5MW机组运行维护手册(1)(1).doc VIP
- YS_T 582-2023《电池级碳酸锂》.pdf VIP
文档评论(0)