- 1、本文档共114页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
高级语言程序设计揭安全jieanquan@163.com江西师范大学计算机信息工程学院高级语言程序设计——基于计算思维能力培养
高级语言程序设计——基于计算思维能力培养第8章结构体及其应用揭安全jieanquan@163.com江西师范大学计算机信息工程学院
主要内容结构体类型与结构体变量指针结构体的指针向函数传递结构体结构体数组动态数据结构——单链表
本章思维导图
为何要用结构体8.1
8.1为何要用结构体C语言中学习的基本数据类型都不能独立地来表示这些对象的全部属性。
结构体类型与
结构体变量8.2
8.2.1结构体类型的声明结构体类型定义的一般格式为: struct结构体类型名 { 数据类型 属性1; 数据类型 属性2; … 数据类型 属性n;};
例如,structstudent{ charid[13]; //学号 charname[9]; //姓名 intage; //年龄 charsex; //性别 charsfzh[19]; //身份证号 charaddress[61]; //家庭住址 chartelNumber[12]; //电话号码 charclassName[21]; //班级名称};
structdate{intyear;intmonth;intday;};结构体类型的定义可以嵌套,即可以利用一个已定义的结构体类型作为别外一个结构体类型的属性。
structstudent{ charid[13]; //学号 charname[9]; //姓名 structdatebirthday; //生日 charsex; //性别 charsfzh[19]; //身份证号 charaddress[61]; //家庭住址 chartelNumber[12]; //电话号码 charclassName[21]; //班级名称};
8.2.2结构体变量的定义1、结构体变量定义的格式我们可以利用之前已定义好的structstudent结构体类型来声明学生结构体变量。structstudents1,s2;注意:结构体类型的完整名称为structstudent。为方便书写,我们可以用类型定义符typedef将structstudent命名为一个新的名称。
如:typedefstructstudentstuStru;//将structstudent命名为stuStru之后,便可在程序中使用stuStru等价地表示structstudent。例如:stuStrus1,s2;定义了两个学生结构体变量s1和s2。
2、结构体变量占用的字节数结构体中的成员按定义顺序占用连续的存储空间。每个结构体变量占用的字节数至少需等于所有成员(属性)占用的内存之和。我们可以用sizeof运算符来获得结构体变量占用的字节数。 sizeof(stuStru); 或 sizeof(s1);
8.2.3对结构体变量的操作对结构体变量的操作应以其属性为基本单位,具体格式如下: 结构体变量名.成员名 其中“.”运算符为成员运算符。例如: stuStrus1,s2; 则s1.id表示s1的学号,表示s1的姓名等。
注意事项:(1)在访问结构体变量的成员时,要根据结构体变量的成员类型来进行相应的操作。例如:strcpy(s1.id,201400120001);
可将201400120001存入s1的学号。注意:s1.id=201400120001是错误的。
注意事项:(2)对于嵌套的结构体变量,应该逐级访问其成员,直至非结构体成员。如:s1.birthday.year=1996;s1.birthday.month=10;s1.birthday.day=20;完成将s1的生日设置为1996年10月20日。
注意事项:(3)不能将结构体变量作为一个整体进行输入输出,只能对变量中的各个成员输入输出。例如:gets(); //输入s1的姓名printf(%s,); //输出s1的姓名scanf(%d,s1.birthday.year);//输入s1的出生年份printf(%d,s1.birthday.year);//输出s1的出生年份
注意事项:(4)两个同类型的结构体变量可以直接赋值,赋值号右边结构体变量的成员将依次赋值给左边结构体变量的各个成员。例如:s2=s1;将使s2与s1具有相同的属性值。
8.2.4结构体变量的初始化结构体变量可以在声明时进行初始化,变量后面的一组数据用“{}”括起来,其顺序应该与结构体中的成员(属性)顺
您可能关注的文档
- 1.1.1 组织与管理的概念及特征.pptx
- 1.2.1 管理者的概念及分类.pptx
- 2.1.2 中世纪的管理思想.pptx
- 2.2.3 韦伯的组织理论.pptx
- 2.3.3 麦格雷戈及其X-Y理论.pptx
- 3.1.1计划的含义及作用.pptx
- 3.1.3 计划工作的基本步骤与常见误区.pptx
- 3.2.1计划工作的方法.pptx
- 3.3.1 目标的含义及作用.pptx
- 3.3.2 目标管理的含义及过程.pptx
- 澳优乳业股份有限公司二零一七年环境、社会及管治报告.pdf
- 庆铃汽车股份有限公司2017年环境、社会及管治报告.pdf
- 浙江天洁环境科技股份有限公司2017 环境、社会及管治报告.pdf
- 盛京银行股份有限公司2017环境、社会及管治报告.pdf
- 正道集团有限公司二零一七年环境、社会及管治报告.pdf
- 珠江船务企业(股份)有限公司2017年度环境、社会及管治报告.pdf
- 魏桥纺织股份有限公司环境、社会及管治报告2017.pdf
- 永嘉集团控股有限公司2017年环境、社会及管治报告.pdf
- 建滔积层板控股有限公司2017年度环境、社会及管治报告.pdf
- 时捷集团有限公司2017年环境、社会及管治报告.pdf
最近下载
- 自行车里程速度计设计论文(本科)毕业设计论文.doc VIP
- GBT3049—2006工业用化工产品铁含量测定的通用方法1,10—菲啰啉分光光度法.pdf
- 新版《建筑设计防火规范》(GB50016-2014年)规范编制组宣讲课件.ppt VIP
- 2024年洛阳文化旅游职业学院单招职业技能测试题库及答案(全优).docx VIP
- 环保管家服务方案.docx VIP
- 2024年洛阳文化旅游职业学院单招职业技能测试题库及答案(必刷).docx VIP
- 大数据平台数据治理规划方案.docx
- 山东文旅云智能科技有限公司笔试考啥.pdf
- 航空移动卫星通信(AMSS).ppt
- 17J008 挡土墙(重力式、衡重式、悬臂.docx VIP
文档评论(0)