深入理解C语言中的结构体和联合类型
1. 引言
在编程世界里,我们常常需要处理各种复杂的数据。之前我们已经了解了如何在C语言中表示数字、字符、单词、字符串以及这些对象的列表(数组)。然而,现实世界远比这些要复杂得多,计算机在这个复杂的宇宙中的作用也日益广泛。因此,我们需要一种方法来模拟更复杂的对象,如原生动物、人类和行星等。这就引出了结构体和联合类型的概念。
2. 用户自定义结构体类型
2.1 结构体类型定义
数据库是存储在计算机内存或磁盘文件中的信息集合,它被细分为记录,每个记录通常包含特定数据对象的信息。在创建或保存结构化数据对象之前,必须定义其组件的格式。我们将采用为每类结构化对象定义新数据类型的方法。
例如,为了开发太阳系行星数据库,我们需要表示每个行星的相关信息,如名称、直径、卫星数量、公转周期和自转周期等。我们可以定义一个名为 planet_t
的结构体类型来存储这些信息:
#define STRSIZ 10
typedef struct {
char name[STRSIZ];
double diameter; /* equatorial diameter in km */
int moons; /* number of moons */
double orbit_time, /* years to orbit sun once */
rotati