ad

《C++程序开发案例课堂》_了解C++的更好途径_9.1 第9章 灵活定义数据类型

admin 70 2023-11-01

【摘要】 本书摘自《C++程序开发案例课堂》一书中第9章,第1节,由刘春茂、李琪编著。

第 9 章 灵活定义数据类型

结构体、共用体

和枚举类型

C++ 提供了结构体和共用体新类型,这些类型对数据的整合有很大的作用,从 而使代码更加灵活和简洁。本章带领读者学习结构体和共用体,了解结构体和共用 体如何声明和定义,清楚两者之间的异同,掌握结构体和共用体在程序中的初始化 和使用,熟练掌握枚举类型的定义和使用。

9.1 结 构 体

在 C++ 中,由不同数据类型的数据组成的整体称为结构体,结构体的作用就是构造复杂 的数据类型。

《C++程序开发案例课堂》_了解C++的更好途径_9.1 第9章 灵活定义数据类型

例如, 一个关于学生信息的复杂数据结构, 一个学生需要学号、姓名、年龄等属性(见图9-1), 那么就可以使用结构体来定义这样一个数据结构,学号等属性就称为成员数据,每个成员数 据的数据类型都不相同,这样定义的学生信息就更加便于管理。

9.1.1结构体的声明

定义一个结构体类型的一般形式如下:

struct 结构体名成员列表

};

其中, struct 是定义结构体的关键字。结构体名是一个用户定义的标识符,它规定了所定 义的结构体的名称。成员列表是用来定义结构体的组成成员的,每个成员包括成员名称及成 员类型。

不要误认为凡是结构体类型都有相同的结构。实际上,每一种结构体类型都有自 己的结构,可以定义出多种具体的结构体类型。

在程序运行过程中,结构体定义后并不直接分配内存空间,只是说明该结构体由哪些成 员类型组成。当程序当中定义了一个结构体类型的变量的时候,编译程序才会给系统分配存 储空间。

结构体的定义有以下3种形式。

(1)在定义一个结构体类型之后,把变量定义为该类型。例如:

struct person

{ char name[20];

int age;

int nm;

char nation;

其中, struct person 代表类型名(类型标识符),就像用 int 定义变量时, int 是类型名一 样。在定义变量时 struct可以省略不写。

(2)在定义结构体类型的同时说明结构体类型变量。

例如:

这种形式的说明的一般形式为:

(3)直接说明结构体类型变量。例如:

这种形式的说明的一般形式为:

如果成员本身又属于一个结构体类型,则要用若干个成员运算符, 一级一级地找 到最低的一级成员。只能对最低级的成员进行赋值或存取及运算。

9.1.2 结构体变量的初始化与使用

下面介绍如何初始化和使用结构体变量。

应,如果跳过前一个成员而直接赋值后面的成员变量,在编译过程中会产生错误。但是,如 果只赋值前面的成员变量,对后面的成员变量不进行赋值,编译过程中会直接给后面的成员 变量赋值为0。

结构体变量的使用主要包括以下一些要点。

(1)结构体变量之间可以相互赋值。

(2)结构体变量中的某个成员的值可以单独被引用,形式如下: 结构体变量名,成员名

其中, "."是成员运算符。

(3)结构体变量可以嵌套使用,也就是说一个结构体变量的成员也可以是一个结构体类 型变量。

(4)结构体的每个成员都可以单独地输入或者输出,但是不能作为整体进行输入或者输出。

(5)结构体中的成员变量性与普通变量一样,可以进行各类操作。

(6)访问结构体变量时,可以通过结构体地址访问,也可以通过结构体变量地址直接访问。

一个结构体变量占用内存的实际大小,也可以利用 sizeof 函数运算求出。它的表 达形式为: sizeof(运算量)。

下面通过一个实例来说明结构体的使用方法

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《C++程序开发案例课堂》_了解C++的更好途径_2.3 输入和输出数据
下一篇:《C++程序开发案例课堂》_了解C++的更好途径_10.1 面向对象编程概述
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×