C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第7章.ppt

C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第7章.ppt

ID:50320746

大小:182.00 KB

页数:50页

时间:2020-03-08

C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第7章.ppt_第1页
C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第7章.ppt_第2页
C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第7章.ppt_第3页
C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第7章.ppt_第4页
C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第7章.ppt_第5页
资源描述:

《C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第7章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章用户自定义的数据类型本章着重讲述6个方面的内容:(1)结构式数据类型的定义、变量说明和使用。(2)指向结构式数据类型的指针。(3)链表及其操作。(4)共用式数据类型的定义、变量说明和使用。(5)枚举式数据类型的定义、变量说明和使用。(6)编译预处理和起别名。7.1结构式数据类型C语言向用户提供了把不同数据类型聚集在一起、构成一种新数据类型的手段——“结构”。用户可以根据实际问题的需要,利用结构来决定所定义的新数据类型叫什么名字,由哪些成员组成。用结构定义了一种结构式的数据类型后,再说明具有这种结构式数据类型的变量,就可以在程序中使用它们了。7.1.1结构式数据类

2、型的定义定义结构类型的一般格式是:struct<结构类型名>{<成员列表>};struct<结构类型名>这个整体,就是新定义的一种数据类型的名字了。<成员列表>由如下形式的“对”组成:<数据类型><成员名>;每一对给出该结构式类型中一个成员的数据类型和名称。7.1.2结构类型变量的说明与初始化定义了一个结构类型,只表明这种数据类型的存在,它不是变量,并不占用内存空间(这犹如int并不是变量,并不占用内存空间是相同的道理)。只有说明了一个变量具有这种数据类型,系统才为其分配存储空间,程序中才能使用这个变量。说明一个结构类型的变量(在不引起混淆的情况下,简称结构变量,甚至

3、就称变量),有如下两种方式。1.先定义结构类型,再说明变量2.在定义结构类型的同时说明变量7.1.3结构变量成员的引用对结构变量的使用,其含义是指对它各个成员的引用。引用结构变量成员的一般方式是:<结构变量名>.<成员名>其中“.”是成员运算符。从输出的结果可以看出如下几点。(1)C语言是按照结构类型定义中成员的顺序来分配存储空间的。(2)结构变量中的成员,可以像通常的同类型变量那样进行各种运算和操作。(3)对结构变量成员的引用,不同于通常变量的引用方式,不能直接使用成员名。而是采取“由整体到局部”的层次式,即先指明是哪个结构变量,然后通过成员运算符“.”,指定所要成

4、员。7.1.4结构数组的说明与初始化由相同结构变量为元素的数组,就是“结构数组”。也就是说,结构数组中的每一个元素,都是一个相同结构类型的变量。因此,结构数组既具有结构的特点,也具有数组的特点。即:(1)要先定义结构类型,再说明结构数组;或在定义结构类型的同时说明结构数组。(2)结构数组元素由下标区分,它们都是结构变量。(3)结构数组元素通过成员运算符引用其每一个结构成员。在说明了一个结构数组后,系统就会在内存中为其开辟一个连续的存储区存放它的元素,结构数组名就是这个存储区的起始地址。结构数组在内存的存放,仍然按照元素的顺序排列,每一个元素占用的存储字节数,就是这种结

5、构类型所需要的字节数。这些与对一般数组的处理是完全相同的。7.2指向结构类型的指针说明一个已有定义的结构类型指针后,把一个同类型的变量地址赋给它,该指针就指向了这个变量,这个指针就是指向结构类型变量的指针;把一个同类型的数组名赋给它,该指针就指向了这个数组,这个指针就是指向结构类型数组的指针。7.2.1指向结构类型变量的指针说明一个结构类型的变量后,它就在内存获得了存储区。该存储区的起始地址,就是这个变量的地址(指针)。如果说明一个这种结构类型的指针变量,把结构类型变量的地址赋给它,这个指针就指向这个变量了。在C语言里,还有一种借助于指针变量来访问结构变量成员的方法,

6、即用指向成员运算符“->”。一般格式是:指针变量名->结构成员名这样一来,访问结构变量成员就有了3种等价的形式。(1)直接利用结构变量名,一般格式是:结构变量名.成员名(2)利用指向结构变量的指针和指针运算符“*”,一般格式是:(*指针变量名).成员名(3)利用指向结构变量的指针和指向成员运算符“->”,一般格式是:指针变量名->成员名7.2.2指向结构类型数组的指针如果说明了一个结构数组和一个同类型的指针变量后,把数组名赋给该指针变量,那么这个指针变量就指向了这个数组。这时,程序中不仅可以使用下标形式来访问数组的元素,也可以通过对指针变量的操作,对数组元素进行访问。

7、7.2.3C语言的内存管理函数需要时就向系统申请一定数量的存储区;不需要时,就把占用的存储区归还给系统?利用C语言提供的内存管理函数,就可以达到这种目的。常用的内存管理函数有两个,它们被包含在头文件“alloc.h”(或头文件“stdlib.h”)里。1.长度运算符:sizeof一般格式是:sizeof(<数据类型符>)或sizeof(<变量名>)2.void指针类型所谓“void指针类型”,即它是一个指针变量,在它里面存放的是一个内存地址,但没有指明它是指向哪一种数据类型。3.内存分配函数malloc()malloc()函数的函数头:void*ma

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。