中国高校课件下载中心 》 教学资源 》 大学文库

南京大学:《C语言程序设计》课程教学资源(PPT课件)第十一章 结构体与共用体(姜恒远)

文档信息
资源类别:文库
文档格式:PPT
文档页数:143
文件大小:1.06MB
团购合买:点击进入团购
内容简介
C语言定义的几种基本数据类型,它们有规定 的类型说明符、数据长度及数据组织和存储形式, 程序设计时可直接用它们来定义数据对象。 在实际应用中仅有这些基本数据类型是不够的, 为了增强数据的表示能力,能够使用各种数据,常需 要各种新的数据类型来满足问题求解的需要。 例如,一个传统的例子:
刷新页面文档预览

第11章结构体与共用体

1 第11章 结构体与共用体

111概述 C语言定义的几种基本数据类型,它们有规定 的类型说明符、数据长度及数据组织和存储形式 程序设计时可直接用它们来定义数据对象。 在实际应用中仅有这些基本数据类型是不够的, 为了增强数据的表示能力能够使用各种数据,常需 要各种新的数据类型来满足问题求解的需要。 例如一个传统的例子:

2 11.1 概述 C语言定义的几种基本数据类型,它们有规定 的类型说明符、数据长度及数据组织和存储形式, 程序设计时可直接用它们来定义数据对象。 在实际应用中仅有这些基本数据类型是不够的, 为了增强数据的表示能力,能够使用各种数据,常需 要各种新的数据类型来满足问题求解的需要。 例如,一个传统的例子:

假定要建立员工的简单档案为了反映每一个员 工的基本情况如果把员工的姓名、性别、年龄、 职称、工资、电话号码和家庭住址等不同类型的 数据项分别用单独的变量表示,就不能很好地反 映与一员工相关的诸数据项之间的关系,且很难 有效地组织、处理和使用它们

3 假定要建立员工的简单档案,为了反映每一个员 工的基本情况,如果把员工的姓名、性别、年龄、 职称、 工资、电话号码和家庭住址等不同类型的 数据项分别用单独的变量表示, 就不能很好地反 映与一员工相关的诸数据项之间的关系, 且很难 有效地组织、处理和使用它们

如果能把这些相关的数据项组织在一起定义成 一种新的、独立的数据类型,再定义一个实际的对 象与之相联系,那么这个对象便代表了某个员工,访 问这个对象就可获得该员工的全部信息。显然这对 组织、处理复杂的数据十分便利有效的。 为了能满足这类问题的需要,C语言允许用户 自定义各种不同的数据类型,并用它们定义与之相 关的对象。 本章将讨论用户自定义数据类型的定义及相应 数据对象的定义和使用

4 如果能把这些相关的数据项组织在一起, 定义成 一种新的、独立的数据类型,再定义一个实际的对 象与之相联系,那么这个对象便代表了某个员工,访 问这个对象就可获得该员工的全部信息。显然这对 组织、处理复杂的数据十分便利有效的。 为了能满足这类问题的需要 ,C语言允许用户 自定义各种不同的数据类型, 并用它们定义与之相 关的对象。 本章将讨论用户自定义数据类型的定义及相应 数据对象的定义和使用

12定义结构体类型及结构变量的方法 什么是结构类型 一个结构是将一个或多个不同类型的数据有序 地组织在一起,并为之确定一个名字所构成的 种数据类型。 不同名的结构代表一种不同的数据类型,即使 两个结构具有完全相同的成员项,但结构名字不 同也表示两种不同的数据类型

5 11.2 定义结构体类型及结构变量的方法 1、 什么是结构类型? 一个结构是将一个或多个不同类型的数据有序 地组织在一起,并为之确定一个名字所构成的一 种数据类型。 不同名的结构代表一种不同的数据类型,即使 两个结构具有完全相同的成员项,但结构名字不 同也表示两种不同的数据类型

定义一个结构就是命名一个结构并说明它的组 成情况。目的是让程序中的函数知道,存在这样的 种数据类型,可用它来定义与之相关的数据对象。 结构的一般定义形式为: struct结构类型名{ 数据类型1成员名1; 数据类型2成员名2 数据类型n成员名n

6 定义一个结构就是命名一个结构并说明它的组 成情况。目的是让程序中的函数知道,存在这样的 一种数据类型,可用它来定义与之相关的数据对象。 结构的一般定义形式为: struct 结构类型名{ 数据类型1 成员名1 ; 数据类型2 成员名2 ; ……… 数据类型n 成员名n ; } ;

其中 struct 指出一个结构定义的开始; 结构类型名 是对该结构类型的命名,按标识符的构成 规则确定; 一对括号中定义了组成该结构类型的诸成 员项,每个成员项由成员的名字、成员的 数据类型和一个分号组成。一个结构中成 员项的多少、顺序没有限制

7 其中: struct 指出一个结构定义的开始; 结构类型名 是对该结构类型的命名,按标识符的构成 规则确定; {…} 一对括号中定义了组成该结构类型的诸成 员项,每个成员项由成员的名字、成员的 数据类型和一个分号组成。一个结构中成 员项的多少、顺序没有限制

数据类型; 用来指出对应成员项的数据类型,它可以是 任何数据类型名: ■C中固有的那些数据类型说明符,如int、foat char、 double等; ■也可以是本程序中已经定义的另一个结构类型 名,因结构名是一种自定义数据类型名; 特别,“数据类型”还可以是本身的结构类型名 但其后的成员名只能是指针变量名,非指针变量 名是错误的

8 C中固有的那些数据类型说明符,如int、float、 char、double等; 也可以是本程序中已经定义的另一个结构类型 名,因结构名是一种自定义数据类型名; 特别, “数据类型i” 还可以是本身的结构类型名 , 但其后的成员名只能是指针变量名,非指针变量 名是错误的。 数据类型i 用来指出对应成员项的数据类型,它可以是 任何数据类型名:

成员名 按标识符组成规则确定。“成员名”和“结构 类型名”可与函数或程序中的其他对象名及其他结 构中的成员名相同,不产生矛盾。C编译程序总是 根据上、下文来区别它们。 结构定义形式是一个整体,在程序中是作为 个定义语句(声明语句)出现的。因此括住诸成员 项说明的一对大括号和最后的分号不能遗漏,否则 引起错误

9 按标识符组成规则确定。 “成员名i” 和 “结构 类型名” 可与函数或程序中的其他对象名及其他结 构中的成员名相同, 不产生矛盾。C编译程序总是 根据上、下文来区别它们。 成员名i 结构定义形式是一个整体,在程序中是作为一 个定义语句(声明语句) 出现的。因此括住诸成员 项说明的一对大括号和最后的分号不能遗漏,否则 引起错误

又因为它是一个声明语句,所以一个结构定义 可以在函数的内部和函数的外部进行。 最后必须强调,上述形式的结构定义仅是描述 了一个结构的组成情况,或者说只是定义了一种类 型为“结构类型名”的数据类型,c编译程序并不 给这样的定义分配对应的空间,因为它不是一个实 际的数据对象。 下面是一个结构定义的典型例子

10 又因为它是一个声明语句,所以一个结构定义 可以在函数的内部和函数的外部进行。 最后必须强调,上述形式的结构定义仅是描述 了一个结构的组成情况, 或者说只是定义了一种类 型为 “结构类型名”的数据类型,C编译程序并不 给这样的定义分配对应的空间,因为它不是一个实 际的数据对象。 下面是一个结构定义的典型例子

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档