- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 自定义类型(结构体与共用体) §9.2 定义和使用结构体变量 9.2.2 结构体类型变量的引用(P298) 9.2.3 结构体变量的初始化(P297) §9.3 结构体数组与结构体指针 9.3.2 指向结构体变量的指针(P303) 9.3.3 指向结构体数组的指针(P304) 9.3.4 用结构体变量和指向结构体的指针作函数参数 3. 在TC2.0中用scanf函数输入实型数据时存在缺陷: (在VC6.0中已经不存在这个问题了) §9.4 用指针处理链表 §9.4.2 堆内存分配(对应§8.8,P285) §9.4.3 建立一个动态链表 §9.4.4 输出一个链表 §9.4.5 删除一个链表中的指定结点 要删除链表中的指定结点,首先要查找到链表中待删除的结点,然后将待删除结点的指针域赋值给前一结点的指针域,最后释放被删除结点所占的存储空间。 §9.4.6 在链表中插入一个结点 设有一个链表a1,a2,…,an,现要求在数据元素ai的结点之前插入一个数据元素为x的结点。首先应找到数据元素ai的结点,以便打开ai-1与ai的两数据元素之间的链;然后重新建立ai-1与x、x与ai之间的链,把X结点连入链表中,形成一个新的链表。 算法示意图如下:(此方法的插入顺序是从前往后,只适合于采用姊妹指针进行插入的情况) §9.5 共用体 §9.6 枚举类型 如果一个变量只可能取几个有限的值,这种数据类型叫做“枚举类型”。所谓“枚举”(enumerate)是指将变量的值一一列举出来,变量所能取得的值只限于所列举出来的那些值。 枚举类型的定义: 例如:enum weekday {sun,mon,tue,wed,thu,fri,sat}; 上面定义了一个枚举类型enum weekday,可以用此类型来定义枚举类型变量。 比如:enum weekday workday,week_end; 变量workday和week_end被定义为枚举类型,它们的值只能是sun到sat之一。 §9.7 用typedef定义新类型名 第九章 结构体与共用体 小结 §9.1 定义结构体类型 §9.2 定义和使用结构体类型变量 §9.3 结构体数组和结构体指针 §9.4 使用指针处理链表 §9.5 共用体 §9.6 枚举类型 §9.7 用typedef定义新类型名 要实现以上所讲的动态数据结构,就必须进行动态内存分配,而程序员所能动态分配的内存空间只有堆(heap)内存。下面就是C语言所提供的堆内存分配函数: (1) malloc函数 Memory Allocation 函数原型: void * malloc(unsigned size) 作用: 调用本函数将在堆内存中为数据动态分配内存空间。 说明: a. 参数size 表示需要分配多少字节的内存空间。 b. 正常情况下,该函数返回所分配内存单元的起始地址;如内存中已没有足够的空间,则返回NULL(空指针)。 c. 由于malloc 函数的返回值是void 型的指针。因此在把返回值赋给具有一定数据类型的指针变量时,需要对返回值进行强制类型转换;否则会出现警告错误,指针类型不匹配,但程序一般能够正确运行。 d. 调用malloc函数前,在VC 6.0源程序开头应包含:#include stdlib.h 2. 堆内存分配函数 (2) calloc函数 函数原型: void * calloc(unsigned n, unsigned size) 作用: 在堆内存中分配n个长度为size的连续空间。若分配成功,函数返回该空间的起始地址,若不成功,返回NULL。 此函数的功能,完全可以由malloc函数来实现。 (3) realloc函数 函数原型: void * realloc(void *p, unsigned size) 作用: 重新分配p所指向的堆内存,将其空间大小改为size,p的值不变。若重新分配成功,函数返回p的值;若不成功,则返回NULL。 注意:这里p所指向的堆内存应该是由前面malloc或calloc函数所获得的空间。 (4) free( ) 函数 作用: 用于释放 malloc 函数分配的内存空间. 格式: void free(p) 说明: 1. p 为指针变量。 调用该函数,将把p 所指向的内存空间释放,被释放的空间又可以用于重新分配。 2. p 所指向的内存空间必须是在此之前用malloc 函数所分配的内存空间,否则可能会导致错误。将释放多大的内存空间,则
文档评论(0)