- 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;
您可能关注的文档
- “爱琴海”杯晋城首届单身职工相亲联谊会活动方案.doc
- 夏季超有效 减肥食谱七天瘦10斤.pdf
- 让香菜保持久一些的小窍门.pdf
- 健康瘦身 美女必吃的10种减肥食物.pdf
- 最快减肥秘籍-郑多燕减肥.pdf
- 自制美味的沙琪玛.pdf
- 姚晨被求婚流泪答应 钟爱黑发的大嘴女星.pdf
- Excel在成本核算中的应用.ppt
- 盘点伦敦奥运闭幕式上的女神妆.pdf
- 单片机原理与C51语言程序设计14.ppt
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
最近下载
- 字节跳动运维工程师岗面试题库参考答案和答题要点.docx VIP
- 肿瘤病人放化疗的护理.pptx VIP
- 字节跳动社群运营专员岗面试题库参考答案和答题要点.docx VIP
- 重庆市名校2023-2024学年七年级上学期1月期末数学试卷(含答案).doc VIP
- 2016年建筑工地围挡设置公益广告通知.doc
- 鲁教版五四制六年级上册英语期末测试卷(含听力音频).pdf VIP
- 心血管系统疾病 心力衰竭(宠物内科疾病诊疗).pptx
- 高中物理研究性学习报告(范文6篇).docx VIP
- UD06113B_海康威视_L5智能锁V1.0_用户手册_20170607.pdf
- 高边坡专项施工方案(专家已评审).doc VIP
文档评论(0)