在日常生活中,常常需要将一些信息存储在一个单元内,比如运动员的姓名、性别、工资、身高、体重等信息,这样一组数据是无法通过数组来实现存储的。数组在存储数据时,有一个必不可少的条件是这些数据的类型必须相同,不能将double类型与int类型的数据存储在同一个数组中。为了能够解决该问题,C++引入了一种新的数据类型,即结构。
结构是一种比数组更灵活的数据格式,因为同一个结构可以存储多种类型的数据,即可以将double类型、int类型、char类型等存储在一起。结构是用户定义的类型,结构声明定义了这种类型的数据属性。
结构的创建包含两步:
- 定义结构描述-------描述并标记能够存储在结构中的各种数据类型;
- 根据描述来创建结构变量-------结构数据对象
例如,对篮球运动员的基本信息进行存储所创建的结构如下:
struct player
{
char name[20];
int height;
double weight;
};
结构中字符串成员可以使用string类来替代,不过需要注意的是必须让结构定义能访问std。例如:
struct player
{
std::string name;
int height;
double weight;
};
定义结构后,可以创建该类型的变量,例如:
player woopie;
player frame;
不同于C语言,C++可以在声明结构变量时省略关键字struct。
定义完结构变量后,可以通过成员运算符(.)来访问各个成员。比如,woope.name指的是结构的name成员。结构声明的位置可以放在main()函数中,也可以放置在main()函数前面。
结构的初始化和数组初始化一样,利用逗号分隔值列表,并将这些值用花括号括起来。例如
player woopie =
{
"Lebron James",
203,
103.25
}