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

第五章复杂构造数据类型.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上节回顾;第五章 复杂构造数据类型;学生;学号;; 结构体是由一些逻辑相关, 但数据类型不同的分量组成的一组数据。;3、定义结构体变量的方法;(2). 定义结构体类型同时定义变量 struct student { char name[10] ; int age ; float s1 , s2 ; } st1 , st2 ;;(2) 结构体类型可以嵌套定义 例: struct date { int year ; int month ; int day ; } ; struct stud { char name[10] ; struct date birthday ; float s1 , s2 ; } ;;4、 结构体变量的引用;struct date { int year ; int month ; int day ; } ; struct stud { char name[10] ; int age ; struct date birthday; float s1 , s2 ; } ;;(2).结构体变量使用说明: ①相同类型的结构体变量可以进行整体赋值 ;② C语言不允许结构体变量整体进行输入和输出, 只能对结构体变量的成员进行输入和输出;③ 可以定义与结构体成员同名的变量,他们之间不会发生混乱。;5、 结构体变量的初始化;;1、 结构体数组的定义 (1). 先定义结构体类型 再定义结构体数组 struct student { char name[10] ; int age ; float s1 , s2 ; } ; struct student st[6] ;; 2、结构体数组的初始化 将每个数组元素的数据用花括号{ } 括起来;(2). 数组元素之间可以整体赋值 也可以将一个元素赋给一个相同类型的结构体变量 struct student x , st[3]={ {“Mary”,21,78,86}, {“Alex”, …} } ; st[2] = st[0] ; x = st[1] ; ;例5.1: 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。;例5.2: 按成绩对学生信息进行从高到底的排序;5.1.4 结构体与指针;一、指向结构体变量的指针; 为了使用方便和直观,可以用指向运算符p-num来代替(*p).num (指向运算符优先级也是最高的) 因此有三种引用结构体成员的方法: 1、结构体变量. 成员名 2、(*p). 成员名 3、p-成员名;2、指向结构体数组的指针;3、用结构体变量和其指针作函数参数;C、用结构体变量的成员分别作参数,用法和普通变量作实参是一样的,属于“值传递”。此时应当注意形参与实参的类型、顺序、个数等要保持一致。此种用法不多见。;5.2 共用体;二.共用体的定义;例2: union data { int i; char ch; float f; }; union data aa,bb;; 共用体变量所占内存的长度等于最长的成员的长度。而不是各成员的长度之和,这一点不同于结构体。 例如前面的例子data类型的变量aa,占据的内存空间为4个字节,而不是2+1+4=7个字节。;三.共用体变量的引用;四.共用体类型数据的特点;(5)共用体变量不能作为函数的参数,也不能作为函数返回值。但可以使用指向共用体变量的指针。;例 :设有若干个人员的数据,其中有学生和教师。 学生的数据包括:姓名、号码、性别、职业、班级。 教师的数据包括:姓名、号码、性别、职业、职务。 现要求把他们放在同一表格中,见图。;数据类型定义: 整体是一个结构体类型;其中第5项可以用共用体来处理。;5.3 枚举类型;例1: enum weekday{sun,mon,tue,wd,thu,fri,sat }; enum weekday day;;说明: (1)、C语言中枚举元素按常量处理,它们是有值的。它们的值是系统按其定义顺序自动赋予的 0、1、2、3、4、……。

文档评论(0)

134****9146 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档