结构体(struct)是C/C++中的一种数据结构,归纳为复杂数据类型一类别。数组允许存储系列相同数据类型的数据,显而易见,它无法满足实际开发中的所有需求。比如,我要用一个数据结构去描述和表示一本书籍,通常书籍具有“书名、ISBN、作者、价格等属性。仅用一种变量,比如数组、整型、浮点型是无法达到预期效果的,因为书籍是一个整体的对象,这些都是作为其属性存在,分散的变量无法完美表达一个整体特征。这时候结构体的功能就充分发挥出来了,它允许在一个结构体变量中同时包含其他若干个一序列数据类型(指针、数组、整型、浮点型、双精度型等),且结构体变量中各成员的地址按照成员定义的顺序递增。
1. 使用typedef struct
定义结构体并指定别名
typedef struct FaceRect { //struct结构体关键字,FaceRect是结构体名
string x;
int y;
float score;
} FaceR;//此处FaceR是结构体别名
注:
结构体名
和结构体别名
都不能直接用,因为它们是结构体这种数据类型的名称,这种方式定义的结构体使用时,需要先进行如下结构变量声明:
FaceR FaceR1;
FaceR1.x;
2. 使用struct
定义结构体
struct FaceRect { //struct结构体关键字,FaceRect是结构体名
string x;
int y;
float score;
} FaceR;//此处FaceR是一变量,使用时可直接 FaceR.x;
//也可省略,使用时声明再使用,如:FaceRect FaceR; FaceR.x;