8章结构体.pptVIP

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8章结构体

C语言程序设计 - 第8章 结构体 第8章 结 构 体 目 录 结构体 结构体数组 指向结构体的指针 定义类型别名 动态存储分配函数 结构体的应用—链表 结构体 (Structure) 结构体概述 结构体类型的声明 结构体变量的定义 结构体变量的初始化 结构体变量的引用 结构体概述 结构体 将不同类型的数据组合成一个整体 用来表示简单类型无法描述的复杂对象 可以用结构体来定义用户自己的数据结构 举例 描述学生信息 结构体类型的声明 一般形式 struct [结构体名] { 成员表列 }; “成员表列”形式 类型 成员名; 类型 成员名; ... ... 结构体类型声明的说明 (1) 声明了一种类型,而不是定义变量 结构体名可以没有,但是这样就无法再次使用该结构体类型了 成员表列中是成员(Member)的定义 成员的定义形式与变量定义相同 成员类型可以是另一结构体类型,但不可直接或间接递归嵌套 成员表列不可为空,至少要有一个成员 结构体类型声明的说明 (2) 注意{}不表示复合语句,其后有分号 同一结构体的成员不能重名 不同结构体的成员可以重名 结构体成员和其他变量可以重名 结构体类型与其成员或其他变量可重名 struct test { int test; } test; 结构体类型名称是struct 结构体名,注意struct关键字不能省略 结构体类型声明的说明 (3) 即使两个结构体声明中的成员类型、名称、顺序都完全一致,它们也是不同的类型 结构体类型也要“先声明,后使用” 如果结构体类型声明在函数内部,则该函数之外无法引用此结构体类型 一般把结构体类型声明放到文件最前面 也可以把结构体类型声明放在头文件里 结构体类型的声明举例 结构体变量的定义 (1) 先声明结构体类型再定义变量 结构体变量的定义 (2) 在声明结构体类型的同时定义变量 结构体变量的定义 (3) 直接定义无名结构类型变量 结构体声明和变量定义举例 结构体变量的初始化 按照成员的顺序和类型对成员初始化 结构体变量中成员的引用 一般形式 结构体变量名.成员名 成员运算符 . 具有最高的优先级,自左向右结合 说明 结构体成员和同类型的变量用法相同 若成员类型又是一个结构体,则可以使用若干个成员运算符,访问最低一级的成员 结构体变量中成员的引用举例 结构体变量整体引用 结构体类型变量之间可以直接相互赋值 实质上是两个结构体变量相应的存储空间中的所有数据直接拷贝 包括复杂类型在内的所有结构体成员都被直接赋值,如字符串、结构体类型等 函数的实参和形参可以是结构体类型,并且遵循实参到形参的单向值传递规则 为了提高程序的效率,函数的参数多使用结构体类型指针 结构体变量整体引用举例 结构体数组 结构体数组的用法与基本类型数组类似 定义、初始化、引用等 结构体数组可用于表示二维表格 举例 结构体数组初始化及应用举例 结构体数组与二维表 指向结构体的指针 指向结构体的指针 定义、使用与其他基本类型指针类似 可以使用指向运算符(-)引用指针所指向的结构体的成员 指向运算符 - 结构体指针-成员名 具有最高的优先级,自左向右结合 若struct student stu, *p=stu; 则stu.num、(*p).num、p-num等效 指向结构体数组的指针 指向结构体数组的指针 与指向其他基本类型数组的指针用法类似 注意相关运算符的结合方向和优先级 举例 结构体指针作函数参数举例 定义类型别名 一般形式 typedef 变量定义形式中变量名换成类型名 举例 typedef float REAL; typedef struct { int month; int day; int year; } DATE; 动态存储分配函数 动态分配存储 根据需要开辟或释放存储单元 相关函数 malloc函数 calloc函数 free函数 说明 应包含malloc.h或stdlib.h malloc函数 函数原型 typedef unsigned size_t; void *malloc(size_t size); 参数 size:分配存储空间的字节数 返回值 若成功,返回指向分配区域起始地址的指针 若失败,返回NULL calloc函数 函数原型 void *calloc(size_t n, size_t size); 参数 n :分配内存的项目数 size:分配内存的每个项目的字节数 返回值 若成功,返回指向分配区域起始地址的指针 若失败,返回NULL free函数 函数原型 void free(void *ptr); 参数 ptr:要释放的内存区地址 说明 释放prt指向的内存区

文档评论(0)

118books + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档