结构体、共同体和枚举类型2

合集下载

c语言字段类型

c语言字段类型

C语言是一种广泛使用的编程语言,它支持多种数据类型,包括字段类型。

字段类型是用于定义结构体、联合体和枚举类型等复杂数据结构的关键字。

在C语言中,字段类型通常用于表示具有特定属性和行为的对象或数据单元。

C语言中的字段类型可以分为以下几类:
1. 基本数据类型:包括整数类型(如int、short、long)、浮点类型(如float、double)、字符类型(char)等。

这些类型可以表示不同大小和精度的数值,根据需要选择合适的类型可以提高代码的可读性和性能。

2. 复合数据类型:包括结构体(struct)、联合体(union)和枚举类型(enum)。

结构体允许将多个不同类型的字段组合在一起,形成一个复合的数据结构;联合体允许在同一内存位置存储不同的数据类型;枚举类型则是一种有限个预定义值的集合。

3. 指针类型:指针是C语言中一种特殊的字段类型,它表示一个变量的内存地址。

通过指针,可以访问和操作内存中的数据。

4. 数组类型:数组是一种特殊类型的字段,它包含一组相同类型的元素。

数组的大小在编译时确定,并且可以通过下标访问数组中的元素。

每种字段类型都有其特定的用途和限制,需要根据具体的需求和场景选择合适的字段类型。

例如,在定义结构体时,需要考虑字段之间的关联和数据交换,选择合适的数据类型和字段顺序可以提高代码的可读性和可维护性。

同时,字段类型的选择还受到编译器、操作系统和硬件平台等因素的影响,需要根据实际情况进行权衡和选择。

总之,C语言中的字段类型是实现复杂数据结构和算法的关键,需要根据具体需求和场景进行选择和设计,以提高代码的可读性、可维护性和性能。

结构体共同体和枚举型

结构体共同体和枚举型

访问共同体的成员同样使用成员 访问运算符“.”,但是由于共同 体成员共享内存,因此同一时间 只能访问其中一个成员的值。例 如,`union_var.member`。
访问枚举类型的变量时,可以 直接使用枚举常量名来赋值或 比较。例如,`enum_var = ENUM_CONSTANT` 或 `if (enum_var == ENUM_CONSTANT)`。
结构体(struct)
结构体是一种复合数据类型,它可以包含多个不同类型的数据成员。在内存中,结构体通 常占用连续的内存空间,每个数据成员按照定义的顺序依次存储。
共同体(union)
共同体也是一种复合数据类型,它允许在相同的内存位置存储不同的数据类型。但是,共 同体的所有成员共享同一块内存空间,因此它们的存储是覆盖的,即同一时间只能存储其 中一个成员的值。
结构体共同体和枚举型
$number {01}
目 录
• 结构体概述 • 共同体概述 • 枚举型概述 • 结构体、共同体和枚举型的比较 • 结构体、共同体和枚举型的应用
案例 • 总结与展望
01
结构体概述
定义与特点
01
结构体是一种用户自定 义的数据类型,允许将 不同类型的数据组合成
一个有机的整体。
02
结构体可以作为函数参数和返回值,实现数据 的整体传递和处理。
结构体的声明与定义
结构体的声明使用关键字`struct`,后面跟结构体的名称和数据成员的列表。 结构体的定义需要在声明之后进行,定义时要指定每个数据成员的类型和名称。
可以使用结构体变量来存储和操作结构体类型的数据。
02
共同体概述
定义与特点
枚举型
适用于定义一组具有固定整数值的常量的情况,例如表示一周的几天、颜色名称等。枚举类型可以提高 代码的可读性和可维护性,同时减少因使用魔法数字(硬编码的常量)而导致的错误。

枚举类型enum用法和结构体

枚举类型enum用法和结构体

枚举类型enum用法和结构体枚举类型(Enum)和结构体(Struct)是C++中的两种重要数据类型。

它们在代码编写过程中起到了不可或缺的作用。

下面我们将为大家详细介绍枚举类型和结构体的使用方法,并解释它们的具体特点和应用场景。

首先,我们来了解一下枚举类型(Enum)。

枚举类型是一种用户自定义的数据类型,它允许程序员定义一个新的取值范围,并使用这些取值来声明变量。

在C++中,枚举类型可以使用关键字“enum”来定义。

定义枚举类型的语法如下所示:```enum 枚举名{枚举值1,枚举值2,...};```枚举类型中的枚举值可以是整型常量,程序员可以根据自己的需要进行定义。

例如,我们可以定义一个星期的枚举类型,如下所示:```enum Weekday{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday};```在上面的例子中,我们定义了一个名为Weekday的枚举类型,并声明了一周的每一天作为枚举值。

可以看出,枚举类型为我们提供了一种简洁的方式来表示特定对象的有限范围。

接下来,我们来介绍结构体(Struct)。

结构体是一种用户自定义的数据类型,它可以同时存储不同的数据类型,这些数据类型可以是基本数据类型(如整数、浮点数等)或其他自定义的数据类型。

结构体中的数据成员可以通过成员运算符(.)来访问。

结构体的定义语法如下所示:```struct 结构体名{数据类型成员名1;数据类型成员名2;...};```通过结构体,我们可以将多个相关的数据进行整合,并以一个整体的形式来处理。

例如,我们可以定义一个学生的结构体,包含姓名、年龄和成绩,如下所示:```struct Student{string name;int age;float score;};```在上面的例子中,我们定义了一个名为Student的结构体,其中包含了学生的姓名、年龄和成绩。

通过结构体,我们可以轻松地定义和操作多个学生的信息。

第十二讲结构体、共用体和枚举类型(C语言)

第十二讲结构体、共用体和枚举类型(C语言)

第十二讲结构体、共用体和枚举类型(C语言)第十二讲结构体、共用体和枚举类型本讲主要介绍C语言中的三种类型的定义和使用,其中两种是构造类型:结构体类型和共用体类型,一种是C语言的基本类型:枚举类型。

要求大家掌握结构体类型、共用体类型和枚举类型的变量的定义,掌握结构体类型和共用体类型变量及其成员的引用等基本操作,理解结构体数组的应用,理解结构体和共用体变量存储形式的不同,了解枚举类型变量的处理方式。

知识要点结构体类型的定义1. 结构体类型定义的一般形式2. 结构体类型定义中的注意事项结构体类型变量1. 结构体类型变量定义的三种方法2. 结构体类型变量的初始化3. 对结构体变量中成员的引用4. 对整个结构体变量的引用结构体数组1. 结构体数组定义的三种方法2. 结构体数组的初始化3. 对结构体数组元素的成员进行引用共用体1. 共用体类型和共用体变量定义的方式2. 共用体变量与结构体变量的区别3. 共用体变量成员的引用4. 共用体变量作为结构体变量的成员枚举类型1. 枚举类型和枚举变量定义的一般形式2. 枚举元素的处理§12.1 结构体类型的定义结构体类型定义的一般形式为:struct 结构体名{类型名1 成员名1;类型名2 成员名2;……类型名n 成员名n;};其中,struct是关键字,是结构体类型的标志。

结构体名是由用户定义的标识符,它规定了所定义的结构体类型的名称。

结构体类型的组成成分称为成员,成员名的命名规则与变量名相同。

§12.2 结构体类型变量一、结构体变量的定义定义结构体类型的变量有三种方法:1.先定义结构体类型,再定义变量。

注意:定义变量时,struct person必须在一起使用,它的用法与int、char等类型名的用法相同。

2.定义类型的同时定义变量。

3.直接定义结构体类型变量,省略类型名。

二、结构体变量的初始化将结构体变量各成员的初值顺序地放在一对大括号中,并用逗号分隔。

结构体、共用体、枚举和ty

结构体、共用体、枚举和ty

每个数组元素都是一个共用体变 量,可以存储不同类型的值。
共用体数组在内存中占用的空间 等于数组长度乘以共用体的大小。
共用体指针
共用体指针是指向共用体类型数据的 指针。
使用共用体指针可以方便地处理不同 类型的数据,提高代码的灵活性和效 率。
通过共用体指针可以访问共用体的成 员,并对其进行操作。
03
05
结构体、共用体、枚举和ty的应用
在数据结构中的应用
结构体
用于表示复杂的数据结构,如点、线、面等几何形状,或学生、 教师等具有多个属性的实体。
共用体
用于节省存储空间,当多个数据项不会同时出现时,可以使用共 用体来存储它们,以减少内存占用。
枚举
用于定义一组命名的常量,增加代码的可读性和可维护性。
ty类型变量的使用可以提高 代码的可读性和可维护性, 同时方便进行数据类型转换
和运算。
在定义ty类型变量时,需要注 意变量的作用域和生命周期, 避免出现变量名冲突和内存泄
漏等问题。
ty类型数组
1
ty类型数组是使用ty类型定义的数组,其定义方 式与基本数据类型数组的定义方式相同。
2
通过定义ty类型数组,可以方便地处理一组相同 类型的数据,提高代码的可读性和可维护性。
存空间大小以及可以进行的操作等。
ty类型的定义使用关键字`typedef`,语法格式为 `typedef 原有类型 别名;`,其中原有类型可以是基本
数据类型、结构体、共用体、枚举等。
通过定义ty类型,可以简化代码,提高代码的可读性 和可维护性。
ty类型变量
ty类型变量是使用ty类型定义 的变量,其定义方式与基本数 据类型变量的定义方式相同。
结构体指针

结构体、共用体和枚举型

结构体、共用体和枚举型

优缺点比较
优点
节省内存空间;可以方便地处理多种数据类型。
缺点
由于所有成员共享同一块内存空间,因此每次只能使用其中一个成员;使用不 当可能导致数据丢失或混乱。
优缺点比较
优点
增加了代码的可读性和可维护性;提供了类型检查,减少了 错误的可能性。
缺点
相对于整数类型,枚举型的处理速度较慢;占用内存空间相 对较大。
枚举型
枚举型通常用于定义一组命名的 整数值,这些值可以增加代码的 可读性和可维护性。例如,可以 使用枚举型来定义一周中的天数 或一个月中的月份。
优缺点比较
优点
可以方便地组合和管理多个不同类型 的数据;提供了数据的封装和隐藏, 增加了代码的安全性;可以方便地传 递和返回多个值。
缺点
相对于基本数据类型,结构体的处理 速度较慢;占用内存空间相对较大。
共用体在节省内存空间中的应用
节省存储空间
共用体允许在相同的内存位置存储不同的数据类型,通过共享内 存空间来节省存储空间。
实现多态性
共用体可以在不同的上下文中表示不同的数据类型,从而实现一 种多态性的效果。
处理异构数据
当需要处理不同类型的数据时,可以使用共用体来统一表示这些 数据,简化数据处理的过程。
实现多态性
通过共用体,可以在相同 的内存空间中存储不同类 型的数据,从而实现多态 性。
方便数据处理
在某些情况下,使用共用 体可以更方便地处理数据。
共用体的声明与定义
声明
定义
初始化
访问成员
注意事项
在C语言中,可以使用 `union`关键字来声明一 个共用体。例如: `union Data { int i; float f; char str[20]; };`

C语言第9章结构体、共用体、枚举

C语言第9章结构体、共用体、枚举

结构体变量.成员
struct date { int year;
int month; int day;
“.”是成员运算符, 优先级最高
printf("%d,%d,%d",birth);
printf("%d,%d,%d",birth.year,
}; struct date birth;
birth.month,birth.day);
scanf("%f",&student2.score[2])7; 8
student2
结构变量的整体赋值 student3 = student2;
02 Zhang Zi Liang 88 78
student3
02 Zhang Zi Liang 88 78
湖南工业大学计算机与通信学院
例9-1学生的基本信息包括学号、姓名、3门成绩、平均分、总分。输入一 个学生的前3项基本信息,计算平均分和总分并输出。
湖南工业大学计算机与通信学院
9.1 问题的提出
又如,在学生信息管理系统中填 加个属性:是否是中共党员,如 果不是属性的值为0(int),如
果是属性的值为入党的时间 (char)。在某一时间,属性只有 一种值,而且数据类型不同,这 种情况用什么数据类型描述呢?
对于这种应用,C语言引入了共用体类型。
共用体是一种同一存储区域由不同类型变量共享的数据 类型,它提供—种方法能在同一存储区中操作不同类型 的数据,也就是说共用体采用的是覆盖存储技术,准许 不同类型数据互相覆盖。
基本数据类型并不能方便地解决所有问题
❖ 复合数据类型是基本数据类型迭代派生而来
典型的代表就是“结构”,数组、指针也可算作此类

C语言知识总结——宏,枚举,结构体,共用体

C语言知识总结——宏,枚举,结构体,共用体

C语言知识总结——宏,枚举,结构体,共用体1、define宏定义以#号开头的都是编译预处理指令,它们不是C语言的成分,但是C程序离不开它们,#define用来定义一个宏,程序在预处理阶段将用define定义的来内容进行了替换。

因此在程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。

define定义的常量,预处理时只是直接进行了替换,,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。

,因此在编译时它不对宏的定义进行检查,作用域不影响对常量的访问。

它的常量值只能是字符串或数字。

该命令有两种格式:一种是简单的常量宏定义, 另一种是带参数的宏定义。

不带参数的宏:#define< 名字 >< 值 > 要注意,没有结尾的分号,因为不是C的语句,名字必须是一个单词,值可以是各种东西,宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的代换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。

如有错误,只能在编译已被宏展开后的源程序时发现。

注意.宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。

宏定义其作用域为宏定义命令起到源程序结束。

如要终止其作用域可使用#undef命令带参数的宏:像函数的宏,一般的定义形式:带参宏定义的一般形式为:「#define 宏名」(形参表)字符串,也是没有结尾的分号,可以带多个参数,#define NB(a,b)((a)>(b)?(b):(a)), 也可以组合(嵌套)使用其他宏,注意带参数宏的原则一切都要有括号,参数出现的每个地方都要有括号。

带参数的宏在大型的程序的代码中使用非常普遍,在#和##这两个运算符的帮助下可以很复杂,如“产生函数”,但是有些宏会被inline函数代替(C++的函数)使用宏好处:“提高运行效”。

定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。

结构体、共用体和枚举类型数据余

结构体、共用体和枚举类型数据余

03
枚举类型概述
枚举类型定义与特点
定义:枚举类型是一种用户自定义的数 据类型,它允许用户为一组整数值分配 有意义的名称。
枚举类型中的标识符具有常量性质,不 能被赋值。
枚举类型属于构造类型,而不是基本类 型。
特点
枚举类型的变量只能取枚举说明结构中 的某个标识符所代表的值。
枚举变量声明与赋值
声明
枚举变量的声明与结构体变量的声明类似,需要指定枚举类型名称和变量名称。
通过函数和模块化设计,将重复的代码和数 据封装成独立的函数或模块,避免数据的重 复出现。例如,将常用的功能和数据处理过 程封装成函数库或模块,提高代码的复用性 和可维护性。
05
结构体、共用体和枚举类型在数据 余处理中应用
结构体在数据余处理中作用
数据整合
结构体可以将多个不同类型的数据整合在一 起,形成一个新的数据类型,方便数据的统 一管理和处理。
赋值
枚举变量可以被赋予枚举说明结构中的某个标识符所代表的值,也可以被赋予 与这些值对应的整数值。
枚举类型应用场景
用于表示一组固定的、预定义 的常量值,如一周的七天、颜
色名称等。
用于替代魔法数字,提高代码 的可读性和可维护性。
用于定义状态机中的状态,使 得状态转换更加清晰和易于理 解。
用于实现位标志,通过组合不 同的标志位来表示不同的选项 或状态。
提高可读性
枚举类型的名称通常具有描述性,可以提高代码的可读性和可维 护性。
06
总结与展望
结构体、共用体和枚举类型重要性总结
结构体(Struct)重要性 结构体允许将多个不同类型的数据组合成一个单一类型,使得数据处理更为方便。
结构体可以提高代码的可读性和可维护性,降低出错率。

C++课件 第七章 结构体、共同体和枚举

C++课件 第七章 结构体、共同体和枚举
了解如何根据实际需求选 择适当的数据类型,灵活 应用于各种编程场景。
总结
我们深入学习了C++中的结构体、共同体和枚举,并了解了它们的定义、使用和区别。通过此章的学习,我们 掌握了更多编程的技巧和灵活性。
练习题
Question 1
如何定义一个包含姓名、年龄和分数的结构体?
Question 2
请解释什么是枚举类型,它与结构体的区别是什么?
成员的访问和赋值
学习如何通过结构体变量访问和赋值结构体的成员。
结构体数组与共同体
结构体数组
掌握如何定义和使用结构体数组,处理多个结构体 对象的同时。
共ห้องสมุดไป่ตู้体
学习共通体的定义和使用,可以在同一内存地址存 储不同类型的数据。
枚举类型
1
定义和使用
了解如何定义和使用枚举类型,使用符
枚举成员
2
号常量表示一组相关的常量值。
学习如何使用枚举成员,为常量赋予更
加直观的语义。
3
枚举的好处
了解枚举类型在代码编写和代码可读性 方面的优势。
结构体、共同体和枚举的区别和联系
1 区别
详细探讨结构体、共同体 和枚举之间的差异,如内 存分配方式和使用场景。
2 联系
强调结构体、共同体和枚 举的共同点,如都是用于 数据类型的封装和组织。
3 灵活性和应用
参考资料
C++结构体和共同体
此篇文章说明了C++中如何定义和使用结构体和 共同体。
C++枚举类型
了解C++中枚举类型的定义和学习,学习枚举的 使用场景。
C++课件 第七章 结构体、 共同体和枚举

VC++程序设计 -第七章结构体、共同体和枚举类型

VC++程序设计 -第七章结构体、共同体和枚举类型
结构类型的变量也与其它类型的变量一样,应该定义在前,使用在后。定义 结构体类型,只是规定了结构体中成员的结构框架或存储格式,并不为结构体类 型分配存储空间,在定义结构体变量时,编译程序按照结构体中所定义的存储格 式为结构体变量分配存储空间。定义结构体类型变量的一般格式为: 《存储类型》 <结构体类型名> <变量名 1>《,<变量名 2>,......》 ; 或者 《存储类型》 struct <结构体类型名> <变量名 1>《,<变量名 2>,......》 ; 有 struct 与省略 struct 的作用是一样的。在本书中均采用前一种格式。如前面定 义的结构体类型 student,可定义 student 类型的变量: student s1, s2[10]; 这里定义 s1 为结构体 student 类型的变量,s2 定义为 student 类型的数组,编译 程序要为这二个变量分配存储空间。为 s1 分配的内存空间如图 7.1 所示。 id 4 个字节 name 20 个字节 sex 1 个字节 age 4 个字节 eng 8 个字节 phy 8 个字节 math 8 个字节 poli 8 个字节 图 7.1 为 s1 分配存储空间的结构 实际上,定义结构体变量的方法有三种,下面通过例子说明之。 例 7.1 用三种方法定义结构体变量。 #include <iostream.h> #include <string.h> struct s1 { char name[20]; char addr[40]; char tel_num[7]; int id; }; struct s2 {
int id_no; int eng, phy, math; float ave; } stu1, stu2;

结构体、共用体、枚举类型、typedef的区别

结构体、共用体、枚举类型、typedef的区别
jh.f). (2)共用体变量中只有最后一次赋值的成员有效,例如 jh.i 赋值 1,然后 jh.f 赋
值 2,此时引用 jh.i 不能取值,已经被 jh.f 覆盖了. (3)共用体变量的地址和它各成员的地址都是同一地址. (4)不能对共用体赋值或引用共用体的变量名取值,也不能在定义共用体变量
时对它初始化. (5)不能把共用体变量作函数参数,也不能使函数返回共用体变量,但可以使
引用: p = cd; 为枚举型变量 p 赋值 cd,p 的值就是成员表列中 cd 的值. 可以理解为 p = 2;,但是 2 是整型常量,要先强制类型转换,写成 p = (enum
jh)2;. 枚举型变量可以用作判断比较,if(p > (enum jh)1)或 if(p > bc).
-------------------------------------------------------------------------------------------------typedef
(2)直接定义结构体类型变量.方法为声明类型的同时定义变量,并且不写结构 体名 jh,这种方法用于只定义 1 次变量,而且每用这种方法定义 1 个变量,虽然都 为无名结构体类型,但不属于同一类型.
引用结构体类型变量: 结构体变量名.成员名
例:
struct jh{int ห้องสมุดไป่ตู้;char b;}a; a.b = 'z';
enum jh{ab=1,bc=2,cd=3,de=4}; 或
enum jh{de=4,ab,bc,cd}; 其中(de=4,ab,bc,cd)就是把最后一个 de 作为 0 放在最前面,然后改变值为最 后一位的值,第二开始就是从 1 算起了.

结构体与共用体-枚举

结构体与共用体-枚举
枚举常量的定义
枚举常量是枚举类型的成员,每个枚举常量都有一个整数值与之对应,默认从0 开始,也可以显式指定。
枚举变量
枚举变量的声明
使用枚举类型名称声明枚举变量,例如`enum Color color;`。
枚举变量的赋值
枚举变量只能赋值为枚举常量列表中定义的整数 值或对应的枚举常量名称。
枚举变量的使用
嵌套共用体
嵌套共用体是一个共用体内部包含另一个共 用体或结构体的情况。
共用体变量
声明
共用体变量的声明方式与结构体 变量类似,需要使用共用体类型 名来定义变量。
访问
访问共用体变量的成员需要使用 成员访问运算符(.),且每次只 能访问一个成员。
01
02
定义
共用体变量是用来存储共用体类 型数据的变量。
03
结构体与共用体-枚举
目录
• 结构体概述 • 共用体概述 • 枚举概述 • 结构体、共用体与枚举的关系 • 结构体、共用体与枚举的应用实例 • 总结与展望
01
结构体概述
定义与特点
01
结构体是一种用户自定义的数据类型,允许将不同类型的数据 组合成一个有机的整体。
02
结构体中的数据可以是基本数据类型,也可以是其他结构体类
未来发展趋势预测
01 02
结构化数据处理
随着大数据时代的到来,处理结构化数据变得越来越重要。结构体作为 一种表示结构化数据的数据类型,将在数据处理和分析领域发挥越来越 重要的作用。
内存优化
共用体可以在相同的内存位置存储不同的数据类型,从而节省内存空间。 在内存资源紧张的情况下,共用体的使用将变得更加重要。
04
当需要提高代码的可读性和可维护性时,可以使用枚举类型来代替一 些硬编码的常量值。

C语言 第八章 结构体

C语言 第八章 结构体

共用体
3)直接定义联合变量 union {
int i;
float f; }num; 说明:(1)共用体变量的所有成员占有同一段内存,所占内存空 间是其成员中字节数最大的成员占有的字节数。
(2)共用体变量中可以定义许多不同类型的成员,但同一时刻只
有一个成员的数据有效。
共用体
4.共用体变量初始化 初始化时,只能对第一个成员的数据类型初始化。 例:union data num={10}; 正确 union data num={10,25.4}; 错误
结构体变量
方法三:定义结构体类型的同时定义结构体变量,省略结构体类型名
struct DATE{ int year; int month; int day;}; struct {
long int number;
char name[8]; int age;
char *sex;
struct DATE birthday; }stu1,stu2;
数据类型
数据类型
成员名1;
成员名2;
//成员表
……
};
结构体类型
2.结构体类型的定义: 说明: (1) struct是关键字,标识一个结构体类型定义的开头 (2)“结构体类型名”是表示该结构体类型的名称的标识符,可
类比int、char
(3)“成员表”是构成结构体类型的成份,由一个或多个成员构
成,每个成员有自己的成员名。各成员数据类型可以不同,既可以
枚举类型
3.枚举变量定义
方式一:类型和变量分开定义 enum WEEKDAY{Sun,Mon,Tue,Wed,Thu,Fri,Sat};//定义枚举类型 enum WEEKDAY w;//定义枚举变量w

第08章结构体、共用体和枚举类型

第08章结构体、共用体和枚举类型

类型与变量是完全不同的概念。
类型:抽象概念,不可赋值、存贮、运算;系统不分配空间。 变量:具体对象,可赋值、存贮、运算;系统为其分配空间。 应先定义结构类型,再定义该类型的变量。
结构体变量的初始化
struct stud stud1={ 1000, "Wu", 19, 'M', 80}, stud2={ 2000, "Li", 18, ’F', 80};
第8 章
★结构体类型数组及数组元素的使用:
第8 章
与一般数据类型相同,可以作为函数的参数及返回值。
例:8.2 建立一个学生档案的结构体数组,P127 输入并输出学生的数据。
#include <iostream.h> struct student { int num;
char name[20]; float score; }; student Input( ) //返回结构体变量 { student stud; cout<<"请输入学号、姓名和成绩:"; cin>>stud.num>>>>stud.score; return stud; }
{
student studs[4]={ {101,“Wang”}, //初始化部分值
…...
第8 章
3. 结构体数组元素的引用
(1)整体赋值 stud stud1={…}, stud3={…}; stud studs[30]; studs[0] = stud1; studs[i] = stud3;
(2)对每个元素成员的引用 studs[0].name, studs[0].age studs[i].num, studs[i].sex
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

以下程序的结果是:
void main(void)
{ struct date
{ int year, month, day;
} today;
cout<<sizeof(struct date)<<endl;
}
12
根据下面的定义,能打印出字母M 的语句是:struct person { char name[9]; int age; };
struct person class[10]={ “Jone Jone””,17, “Paul Paul””,19, “Mary Mary””,18, “Adam Adam””,16 };
A)cout<<class[3].name<<endl;•cout<<class[3].name[1]<<endl;•cout<<class[2].name[1]<<endl;•cout<<class[2].name[0]<<endl;输出:Adam 输出:d 输出:a 输出:M
在结构体中说明的静态成员属于引用性说明,必须在文件作用域中的某一个地方对静态的成员进行定义性说明,且仅能说明一次。

int s::id;
说明id的初值为0(静态变量的缺省初值均为0)
共用体
C++语言中,允许不同的数据类型使用同一存储区域,即同一存储区域由不同类型的变量共同表示。

这种数据类型
就是共用体。

union 共用体名
{ 成员表列;
} 变量表列;union data { int i;
char ch; float f; } a, b, c;
union data a, b, c;
这几个成员在共用体变量中存放在同一地址,相互覆盖,其长度为最长的成员的长度。

共用体变量的引用
不能整体引用共用体变量,只能引用变量中的成员。

a.i 表示为整型
a.ch 表示为字符型
a.f 表示为符点型
共用体变量的特点
1、共用体的空间在某一时刻只有一个成员在起作用。

2、共用体变量中的成员是最后一次放入的成员。

3、共用体变量不能在定义时赋初值。

4、共用体变量不能作为函数的参数或函数值,但可使用指向共用体的指针变量。

5、共用体可以作为结构的成员,结构体也可以作为共用体的成员。

union un
{ int i;
double y;
};
struct st
{ char a[10];
18 union un b;
};
cout<<sizeof(struct st)<<endl;
枚举类型
如果一个变量只有几种可能的值,可以定义为枚举类型。

枚举类型就是将变量的值一一列举出来,变量的值仅限于列举出来的值的范围内。

1、枚举元素为常量,不可赋值运算。

、枚举元素为常量,不可赋值运算。

sun=0; mon=1;
sun=0; mon=1;2、在定义枚举类型的同时,编译程序按顺序给每个枚举元
素一个对应的序号,序号从素一个对应的序号,序号从00开始,后续元素依次加开始,后续元素依次加1
1。

enum weekday {sun, mon, tue, wed, thu, fri, sat};
0 , 1, 2, 3, 4, 5, 6 3、可以在定义时人为指定枚举元素的序号值。

enum weekday {sun=9, mon=2, tue, wed, thu, fri, sat};
9 , 2, 3, 4, 5, 6 , 7 4、只能给枚举变量赋枚举值,若赋序号值必须进行强制类型转换。

day=mon ; day=1; day=(enum
weekday)1;
5、枚举元素可以用来进行比较判断。

if (workday= = mon) if (workday>sun)
6、枚举值可以进行加减一个整数n的运算,得到其前后第n个元素的值。

workday=sun;
workday=(week)(workday +2);workday= = tue
7、枚举值可以按整型输出其序号值。

workday=tue;
cout<<workday;2
void main(void)
{
enum team{ qiaut, cubs=4, pick, dodger=qiaut-2;};
<<cubs<<‘‘\t\t’’;
cout<<qiaut<<‘‘\t\t’’<<cubs<<
cout<<qiaut<<
cout<<pick<<‘‘\t\t’’<<dodger<<endl;
cout<<pick<<
}
输出:045-2。

相关文档
最新文档