




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章用户自定义数据类型 指针与结构 8 5 1指向结构体变量的指针变量在定义一个结构体变量时 系统将在内存中分配一块连续的存储空间 用于存放结构体成员的数据 这块连续存储空间的首地址称为结构体变量的指针 也称为结构体变量的首地址 可以定义指向结构体变量的指针变量 若把某结构体变量的首地址赋值给一个指针变量 则称这一指针变量指向该结构体变量 指向结构体的指针变量定义格式是 struct类型名 指针变量名 第8章用户自定义数据类型 指针与结构 如下面定义一个结构体类型booktp来存储书的基本信息 structbooktp charname 60 charauthor 30 floatprice structdatetp unsignedyear unsignedmonth pubday 可以定义结构体变量和指向结构体变量的指针 structbooktpbook5 p 第8章用户自定义数据类型 指针与结构 以上定义了p为指向结构体变量的指针变量 若p book5 则称指针变量p指向结构体变量book5 此时可用下述三种方式之一存取结构体成员 三种方式是等价的 1 结构体变量名 成员名2 指针变量名 成员名3 指针变量名 成员名其中 是指向运算符 如有下面程序段 structbooktp p book5 C Buider网络开发实例 清汉计算机工作室 53 2000 9 p book5 则book5 price p price以及 p price的值都是53 0 而book5 pubday year p pubday year以及 p pubday year的值都是2000 注意此处 p price的圆括号不能少 指针运算符 作用于指针变量p上 构成表达式 p 等价于结构体变量名book5 第8章用户自定义数据类型 指针与结构 8 5 2指向结构体数组的指针变量指向结构体的指针变量也可以指向结构体数组及其元素 例如 下述程序段 structbooktp p book 3 p book 如图8 20所示 图中假定book 0 的地址是3000 指针变量p指向结构体数组book的首地址 由于sizeof structbooktp 的值为98 每个结构体元素占内存空间98个字节 因此p l指向地址3098处 p 2指向地址3196处 图8 20 第8章用户自定义数据类型 指针与结构 使用指针变量指向结构体变量或结构体数组时 应注意运算符的优先级 1 四个运算符优先级相同 在C语言中具有最高的优先级 运算的结合方向是 从左到右 2 十十 一一 四个运算符优先级相同 在C语言优先级的级别仅次于上述的四个运算符 运算的结合方向是 从右到左 例8 16 通过一个简单的例子说明指向结构体数组的指针的应用 在程序中 为了说明运算符的优先级和结合方向的用法 改变了书的价格 main structdatetp unsignedyear unsignedmonth 出版日期 第8章用户自定义数据类型 指针与结构 structbooktp charname 60 书名 charauthor 30 作者 floatprice 价格 structdatetppubday structbooktp p book 3 C Buider网络开发实例 清汉计算机工作室 53 0 2000 9 SQLServer循序渐进教程 Petkovic 35 0 1999 6 VB开发指南 DianneSiebold 28 0 2000 9 p book printf 8 2f p price 橙色表达式等价于 p price 第8章用户自定义数据类型 指针与结构 printf 8 2f p price 先计算 p p指向book l printf 8 2f p price 上述表达式等价于 p price printf 8 2f n p price 上述表达式等价于 p price for p book pname p author p pubday year p pubday month p price 运行结果 54 00 35 00 35 00 28 00C Buider网络开发实例舴者 清汉计算机工作室 出版日期 2000年9月 价格 54 0SQLServer循序渐进教程 作者 Petkovic 出版日期 1999年6月 价格 35 0VB开发指南 作者 DianneSiebold 出版日期 2000年9月 价格 29 0 运行程序 第8章结构体作为函数参数 例8 15 includestructst inta charb fun structstbc bc a 5 bc b A printf 被调函数中成员的值是 d c n bc a bc b main structstbl b1 a 3 b1 b c fun b1 printf 主调函数中成员的值是 d c n b1 a b1 b 运行结果 被调函数中成员的值是 8 A主调函数中成员的值是 3 c 例8 16 includestructst inta charb main structstb1 b1 a 3 b1 b c fun b1 printf d c n b1 a b1 b fun structst bp bp a 5 bp b A printf d c n bp a bp b 运行结果 8 A8 A 例8 17 defineN3structst intnum charname 7 floatscore main inti floatavg inpu avg structst structststudent N avg inpu avg student 结构数组名作为函数的实参 printf 学号姓名成绩 n for i 0 i N i printf 4d 7s 6 1f n student i num student i name student i score printf 平均成绩 4 1f n avg floatinpu avg structst p inti floattemp avg 0 0 for i 0 inum p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脑出血后血压管理策略
- 《婚前财产分割与离婚后子女抚养及赡养责任协议》
- 精装房屋租赁合同附带品牌家电售后服务
- 乡村民宿租赁补充协议范本(民宿特色服务承诺)
- 商铺租赁合同范本:包含装修补贴及违约责任
- 二手房买卖合同签订前的房屋交易市场行情分析及预测
- 离婚股权平分与子女成长基金支付合同范本
- 班组日常现场安全培训课件
- 交警冬季交通安全工作要点
- 鼓励与表扬课件
- 2025年职业卫生标准试题及答案
- 创新社区治理新路径
- 2025-2030中国智慧城市建设项目投资规模与运营效益评估报告
- 校园常见传染病防控知识课件
- 2025部编版八年级历史上册 第二单元 早期现代化的初步探索和民族危机加剧(大单元教学设计)
- 药械知识培训计划课件
- 百师联盟2025-2026学年高三上学期开学摸底联考化学试卷
- 短波无线电通信原理课件
- 2025-2026学年人教版(2024)初中数学七年级上册教学计划及进度表
- 2023年度中国人民抗日战争纪念馆招聘4人笔试备考题库及答案解析
- T∕CSBME 002-2017 医用非血管内导管弯曲性能试验方法
评论
0/150
提交评论