6.2 结构定义
优质
小牛编辑
129浏览
2023-12-01
结构是用其他类型的元素建立的聚合数据类型。考虑下列结构定义:
struct Time {
int hour; // 0-23
int minute; // 0-59
int second; // 0-59
};
结构定义用关键字 struct 引入。标识符 Time 是个结构标志(structure tag),命名结构定义并声明该结构类型(structure type)的变量。本例中,新类型名为 Time
。结构定义花括号中声明的名称是结构的成员(member)。同一结构的成员应有惟一名称.但两个不同结构可以包含同名成员而不会发生冲突。每个结构定义应以分号结尾。上述解释对后面要介绍的类也适用,C++ 中的结构和类是非常相似的。
Time 的定义包含三个 int 类型的成员 hour、minute 和 second。结构成员可以是任何类型,一个结构可以包含不同类型的成员。但是,结构不能包含自身的实例。例如,Time 类型的成员不能在Time的结构定义中声明,但该结构定义中可以包含另一 Time 结构的指针。当结构包含同一类型结构的指针时,称为自引用结构(self-referential structure)。自引用结构用于形成链接数据结构,如链表、队列、堆栈和树等(见第15章介绍)。
上述结构定义并没有在内存中保留任何空间,而是生成新的数据类型,用于声明变量。结构变量和其他类型的变量一样声明。下列声明:
Time timeObject,timeArray[10] ,*timePtr.
&timeRef=timeobject;
声明 timeObject
为 Time
类型变量, timeArray
为10个 Time
类型元素的数组, timePtr
为 Time
对象的指针, timeRef
为 Time
对象的引用(用 timeObject
初始化)。