网站大量收购独家精品文档,联系QQ:2885784924

第8章-结构体及其应用-4学时.pptx

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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结构体变量的初始化结构体变量可以在声明时进行初始化,变量后面的一组数据用“{}”括起来,其顺序应该与结构体中的成员(属性)顺

文档评论(0)

学海无涯而人有崖 + 关注
实名认证
内容提供者

教师资格证、人力资源管理师持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年06月11日上传了教师资格证、人力资源管理师

1亿VIP精品文档

相关文档