- 1、本文档共88页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三、C51构造数据类型 (3)直接定义结构类型变量。 其一般形式为: struct { 结构成员说明 }变量名1,变量名2…变量名n; 例如 struct { char hour; char min; char sec; int days; }time_of_day1, time_of_day2; 3、结构 三、C51构造数据类型 3. 结构变量的引用 就结构而言,可操作的对象是结构类型变量,而不是结构类型。也就是说,当对结构进行引用时,只能对结构类型变量进行赋值、存取和运算,而不能对结构类型作这些操作。这是因为在编译时,C编译器不对抽象的结构类型分配内存空间,只对具体的结构类型变量分配内存空间。 结构不能作为一个整体参加赋值、存取和运算,也不能整体地作为函数的参数,或函数的返回值。对结构所执行的操作,只能用运算符取结构的地址,或对结构变量的成员分别加以引用。 结构体成员引用的一般形式为: 结构变量名.成员名; 例 time_of_day1.hour = 12; “.”是成员运算符。它在所有的运算符中优先级最高。上面的赋值语句作用是将12赋给struct time_str类型的结构变量time_of_day1的成员hour。 如果结构类型变量的成员本身又属于一个结构类型变量,则要用若干个成员运算符“.”一级一级地找到最低一级的成员,只有最低一级的成员才能参加赋值、存取和运算。“->”和“.”等同。 结构类型变量的成员可以像普通变量一样进行各种运算。 3、结构 三、C51构造数据类型 4. 结构数组 在讲到struct time_str结构类型时,虽然只定义了两个具有该类型的结构变量time_of_day1、time_of_day2,但在使用时已经感到了引用它们的麻烦。因为尽管这两个变量结构相同,具有同样的成员项,但当使用printf()语句打印它们时,必须分别使用两个printf ( )语句。试想,假如有若干个这样的结构变量,要将它们的内容全部打印出来,将是多么麻烦。要解决这个问题,可以将具有同样结构类型的若干个结构变量定义成结构数组。这样就可以使用循环语句对它们进行引用,从而大大提高效率。 结构数组的每个元素都是具有相同结构类型的结构变量,它们都含有相同的成员项。结构数组的定义与结构变量的定义方法相似,只需将结构变量改成结构数组即可 3、结构 三、C51构造数据类型 5. 指向结构的指针 一个指向结构类型数据的指针,就是该数据在内存中的首地址。定义的一般形式为: struct 结构类型名 { 结构成员说明 }*指针变量名; 或 struct 结构类型名 *指针变量名; 3、结构 三、C51构造数据类型 【例5-11】用指向结构变量的指针变量实现信息的传送。 程序清单如下: # define uint unsigned int #define uchar unsigned char struct msg1 { uint lnk; uchar len,flg,nod,sdt,cmd,stuff; }; struct msg1 *msg; /*定义指向结构msg1的指针变量*/ void rqsendmessage (struct msg1 *m); /*“传递信息”函数*/ main ( ) { uchar stuff = 0; msg - len = 8; //msg赋值 msg - flg = 0; msg - nod =0; msg - sdt = 0x12; msg - cmd = 0; msg - stuff = stuff; rqsendmessage(msg); //发送信息 } 3、结构 三、C51构造数据类型 【例5-12】用指向结构数组的指针变量实现多条信息的传送。 程序清单如下: # define uint unsigned int #define uchar unsigned char struct { uint lnk; uchar len,flg,nod,sdt,cmd,stuff; } msg1[4]; /*定义结构数组*/ void rqsendmessage (struct msg1 *m); /*“传递信息”函数*/ main ( ) { uchar stuff = 0; struct msg1 *p;
您可能关注的文档
- 单片机原理及应用第2版 教学课件 作者 陈立周 编 第9章.ppt
- 单片机原理及应用第2版 教学课件 作者 陈立周 编 第10章.ppt
- 单片机原理及应用第2版 教学课件 作者 陈立周 编 封面与目录.ppt
- 单片机原理及应用电子课件李英顺 第1章 MCS 51系列单片机基础.ppt
- 单片机原理及应用电子课件李英顺 第2章 MCS 51单片机的结构和工作原理.ppt
- 单片机原理及应用电子课件李英顺 第3章 MCS 51单片机指令系统.ppt
- 单片机原理及应用电子课件李英顺 第4章 汇编语言程序设计.ppt
- 单片机原理及应用电子课件李英顺 第5章 MCS 51单片机定时系统与终端系统.ppt
- 单片机原理及应用电子课件李英顺 第6章 MCS 51单片机的系统扩展与接口技术.ppt
- 单片机原理及应用电子课件李英顺 第7章 MCS 51单片机测控接口.ppt
- CNAS-CL63-2017 司法鉴定-法庭科学机构能力认可准则在声像资料鉴定领域的应用说明.docx
- 12J7-3 河北《内装修-吊顶》.docx
- 12N2 河北省12系列建筑标准设计图集 燃气(油)供热锅炉房工程.docx
- 内蒙古 12S8 排水工程 DBJ03-22-2014.docx
- 山西省 12S10 12系列建筑标准设计 管道支架、吊架.docx
- 16J601-木门窗标准图集.docx
- 12J8 河北省12系列《 楼梯》.docx
- CNAS-GL37 2015 校准和测量能力(CMC)表示指南.docx
- CNAS-RL02-2016 能力验证规则.docx
- 津02SJ601 PVC塑料门窗标准.docx
最近下载
- 品牌策划与推广实战PPT全套完整教学课件.pptx
- 概率论与数理统计课件-全概率与贝叶斯公式.ppt VIP
- 炒茶机及其系统设计.doc
- The Pricing of Options and Corporate Liabilities期权定价与公司负债.pdf
- (概率论与数理统计)全概率公式与贝叶斯公式.ppt VIP
- 新人教(pep)四年级英语下册Unit4 At the Farm A. Let's talk 说课稿.doc
- 职业教育课程建设人工智能赋能的改革研究.docx VIP
- 公司出纳年终工作总结6篇.docx VIP
- (完整word版)AAO工艺设计计算.doc VIP
- 《秘书工作理论与实务》课件——第一章 秘书办文工作.pptx VIP
文档评论(0)