- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课件(结构体)
结构体 结构体 结构体的概念 结构体类型的定义 结构体变量 定义和声明 初始化 使用 结构体作函数的参数 自定义类型 程序设计举例 引例 问题 图书包括书号、作者、出版商、出版日期等属性。 怎么定义数据结构? 简介 结构体 相关数据的集合。 数据的类型可以不相同。 用来定义保存在文件中的记录。 与指针一起创建动态的数据结构: 链表 队列 栈 树 结构体类型的定义 结构体是派生的数据类型 使用其他类型的对象来构造结构体。 结构体定义举例 struct:引入结构体定义。 card:结构体的名称,必须与 struct 一起使用。 struct card 结构体包含两个 char * 类型的成员: face suit 结构体类型的定义 结构体定义说明 同一个结构体内不可以有同名的成员。 不同结构体的成员名可以相同,不互相冲突。 结构体类型的定义 结构体定义说明 结构体的成员可以是基本类型和构造类型(数组和其他结构体)。 结构体类型的定义 结构体定义说明 结构体不能包含自身的实例。 但可以包含指向自身的指针。 结构体变量 结构体定义说明 只是创建了新的数据类型,并不能保留内存空间。 必须定义结构体变量来获得内存空间。 定义声明结构体变量 定义结构体类型后,像声明普通变量一样声明结构体变量。 结构体变量 定义声明结构体变量 在定义结构体类型的同时,声明结构体变量 直接(只)声明结构体变量 结构体的操作 在结构体(变量)上可以执行的操作 将结构体变量赋给相同类型的结构体变量。 得到结构体变量的地址。 访问结构体变量的成员。 使用 sizeof 确定结构体变量的大小。 结构体变量的初始化 初始化结构体变量 给全部成员赋初值。 结构体变量的初始化 初始化结构体变量 给部分成员赋初值。 结构体变量的成员 访问结构体成员的两种方式 结构体成员运算符:. 用于结构体变量 结构体指针运算符:- 用于指向结构体的指针 等价于 (*cardPtr).face 案例分析:结构体变量的成员 问题:访问结构体变量的成员。 实现(cw1301.c) 案例分析:结构体变量的成员 问题 访问结构体变量的成员。 结构体作为函数的参数 把结构体的单个成员传递给函数 值传递。 被调用函数不能修改调用函数中的结构体成员。 把整个结构体传递给函数 值传递。 被调用函数不能修改调用函数中的结构体。 把结构体指针传递给函数 模拟引用传递。 被调用函数能修改调用函数中的结构体。 案例分析:结构体作为函数的参数 问题:编写函数实现结构体的复制。 实现(cw1302.c) 案例分析:结构体作为函数的参数 源代码 (续) 案例分析:结构体作为函数的参数 源代码 (续) 在函数中使用结构体 把整个结构体作为单个数据返回 因为结构体变量之间可以赋值。 按值传递把数组传递给函数 把数组作为结构体的成员,然后把结构体传递给函数。 被调用函数不能修改调用函数中的数组。 自定义类型 typedef 为已经定义的数据类型创建一个别名。 举例 创建了一个新的类型名 Date ,它是 struct date 的别名。 注意:并没有创建新的类型。 可以简化程序代码,提高程序的可移植性。 结构体数组 结构体数组 数组的元素是结构体变量。 常用结构体来表示记录,那么结构体数组就可以表示一组记录。 案例分析 全班 N 个学生,每个学生有学号、姓名、四门课的成绩。 结构体数组 结构体数组 案例分析 那么,可以定义结构体数组来保存 N 个学生的数据。 这样,每个学生的数据就对应一个结构体变量(一条记录),便于编程处理。 小结 结构体 C语言程序设计 结构体 如何表示图书? 如何表示多本图书? 用多个独立的数据。 用多个并列数组。 用单个数据。 用一个数组。 结构体 结构体 /*表示纸牌*/ struct card { char *face; char *suit; }; 为程序创建了一个新的数据类型 struct card 结构体 struct date { int year,month,day; }; struct Book { char title[50],writer[20],publisher[50]; int year,month; }; int year,month,day; 结构体 struct date { int year,month,day; }; struct StuRec { int num; char name[20]; struct date birthday; }; 结构体 struct student { char name[20]; char gender; float scores[4];
文档评论(0)