[计算机软件及应用]第6章 结构体与共用体.pptVIP

  • 2
  • 0
  • 约1.8万字
  • 约 64页
  • 2018-03-09 发布于浙江
  • 举报

[计算机软件及应用]第6章 结构体与共用体.ppt

[计算机软件及应用]第6章 结构体与共用体

第6章 结构体与共用体 本章要点: 掌握结构体与共用体类型和变量的定义 掌握结构体与共用体变量成员的引用方法 掌握结构体数组的定义和使用方法 掌握指向结构体变量的指针及通过指针引用其成员 理解用指针处理链表 了解枚举类型变量的定义及其简单应用 6.1 结构体 结构体是一种构造数据类型 用途:把不同类型的数据组合成一个整体-------自定义数据类型 结构体类型定义 6.2 结构体变量的定义 一、先定义结构体类型,再定义结构体变量 一般形式: 二、定义结构体类型的同时定义结构体变量 一般形式: 6.3 结构体变量的引用 引用规则 结构体变量不能整体引用,只能引用变量成员 6.4 结构体变量的初始化 形式一: 6.5 结构体数组 结构体数组的定义 三种形式: 结构体数组初始化 6.6 结构体和指针 指向结构体变量的指针 定义形式:struct 结构体名 *结构体指针名; 例 struct student *p; 指向结构体数组的指针 用指向结构体的指针作函数参数 用结构体变量的成员作参数----值传递 用指向结构体变量或数组的指针作参数----地址传递 用结构体变量作参数----多值传递,效率低 6.8 共用体 构造数据类型,也叫联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖) 共用体类型定义 定义形式: 6.9 枚举类型 1、声明枚举类型格式: enum 枚举型名{枚举常量1,枚举常量2,……,枚举常量n}; 其中: 1)枚举型名是用户取的合法标识符 2)枚举常量是用户给常量取的标识符 3)C语言规定枚举常量的默认的初值依次是0、1、……、n-1 4)C语言规定在定义枚举常量时可以给枚举常量赋初值,其后没有赋初值的枚举常量将按自然数的规则依次赋初值 例: 1)enum weekday{sun,mon,tue,wed,thu,fri,sat}; 2)enum color{red=2,yellow=4,blue=7}; 3)enum week1{sun,mon,tue=5,wed,thu,fei,sat}; 2、枚举型变量的定义: 1)先定义枚举类型再定义枚举变量 2)定义枚举类型的同时定义枚举变量 3)定义无名称的枚举型同时定义枚举变量 1. malloc函数 它的作用是在内存开辟指定大小的存储空间,并将此存储空间的起始地址作为函数值带回。malloc函数的原型为: void *malloc(unsigned int size) 它的形参size为无符号整型。函数值为指针(地址),这个指针是指向void类型的,也就是不规定指向任何具体的类型。如果想将这个指针值赋给其他类型的指针变量,应当进行显式的转换(强制类型转换)。 例如: malloc(8) 用来开辟一个长度为8个字节的内存空间,如果系统分配的此段空间的起始地址为 81268,则malloc(8)的函数返回值为81268。 如果内存缺乏足够大的空间进行分配,则malloc函数值为“空指针”,即地址为0。 2. calloc函数 其函数原型为: void *calloc(unsigned int num,unsigned int size) 它有两个形参num和size。其作用是分配num个大小为size字节的空间。例如用calloc(20,30)可以开辟20个(每个大小为30字节)的空间,即总长为600字节。此函数返回值为该空间的首地址。 成员也可以是一个结构体变量。 3. free函数 free函数的原型为: void free(void*ptr) 其作用是将指针变量ptr指向的存储空间释放,即交还给系统,系统可以另行分配作它用。应当强调,ptr值不能是任意的地址项,而只能是由在程序中执行过的malloc或calloc函数所返回的地址。如果随便写:free(100)是不行的,系统怎么知道释放多大的存储空间呢? 例如: p=(long*)malloc(18); … free(p); free函数它把原先开辟的18个字节的空间释放。 free函数无返回值。 6.7.4 建立动态链表 所谓建立链表是指一个一个地输入各结点数据,并建立起各结点前后相链的关系。 建立单向链表的方法有插表头方法和链表尾方法两种。 插表头方法的特点是:新产生的结点作为新的表头插入链表前面; 链表尾方法的特点是:新产生的结点接到链表的尾部。 用插

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档