ad

《C++程序开发案例课堂》_了解C++的更好途径_9.1.3 结构体数组初始化

admin 148 2023-11-01

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

9.1.3 结构体数组初始化

在 C++ 中, 一个数组中的元素可以是结构体类型,这样一组数组表示具有相同数据结构 的一组变量。

《C++程序开发案例课堂》_了解C++的更好途径_9.1.3 结构体数组初始化

结构体数组的定义方法如下。

(1)在定义结构体数组前,必须首先定义结构体类型。

(2)定义结构体类型与定义结构体数组同时进行。

(3)定义结构体数组,而不定义结构体类型名。

结构体数组各元素是连续存放的,不能对结构体数组做整体操作,可以对结构体数组进 行初始化赋值。

结构体数组适合于处理由若干具有相同关系的数据组成的数据集合体。

下面通过一个实例来说明结构体数组初始化的过程。

【代码剖析】

这个程序,首先定义了一个 student的结构体,该结构体包含5个结构体成员;在主程序 中,定义了student 数组,并且初始化了3个数组变量;接下来,使用 for 循环将数组对应的 每个结构体变量都输出。

从结果来看,正确地输出了结构体数组中的元素。在初始化时,连续初始化了3 个数组 变量。访问结构体数组和普通数组相同,只是数组的类型是结构体而已。

9.2 将结构体变量作为函数参数

由前面的介绍可知,结构体也是一种数据类型,变量作为函数的参数,那么结构体变量 也可以作为函数的参数来使用。

9.2.1 将整个结构体传送到函数

作为函数的参数,可以传送数据类型,也可以传送数据地址。下面通过一个例子来说明 如何将整个结构体作为参数传送到函数。

9.2.2 传 送 结 构 体 的 地 址 到 函 数

在定义函数时,如果需要修改实参的值就需要使用传址调用。在进行传址调用时,如果 调用实参是一个结构体中的成员数据时,由于成员数据数量较多,使用不便。在 C++ 中,允 许结构体变量与普通参数一样,作为实参进行参数传递。

下面用一个实例来说明结构体传址到函数的过程。

9.3 共 用 体

在 C++ 中,共用体功能与结构体非常类似,其作用就是对于不同的数据类型使用共同的 存储区域。共用体在运行过程中只有一个成员是处于活动状态,而结构体中所有的成员都处 于活动状态。正是由于这样的不同特性,共用体所占用的内存空间只是成员变量中最大的长 度,而结构体中所占用的内存长度是所有内存的和。

下面介绍共用体的使用方法。

9.3.1 共用体的定义和声明

共用体变量定义的一般形式如下:

定义共用体类型变量的方法与定义结构体类型变量的方法相似,也有以下3种方法。

9.3.2 共用体类型的初始化和使用

在共用体变量说明的时候可以直接赋值初始化,但是在初始化的时候,只能初始化其中 一个成员类型。

能够访问的是共用体变量中最后一次被赋值的成员,在对一个新的成员赋值后原 有的成员就失去了作用。

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

上一篇:《C++程序开发案例课堂》_了解C++的更好途径_6.2 变量的作用域
下一篇:《C++程序开发案例课堂》_了解C++的更好途径_3.5 自定义数据类型
相关文章

 发表评论

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

×