在实际问题中,一组数据往往具有不同的数据类型。例如,人口大普查时,我们需要记录每一位公民的姓名,年龄,性别,住址,身份证号码。这些信息分别要用整型,字符型,字符串型来记录。为了解决问题,C++语言给出了另一种构造数据类型——“结构体”,它在数据存储方面相当于其他高级语言中的记录,但它有着面向对象的优势。
一、结构体定义和操作
1. 定义结构体及结构体变量
结构体变量的定义有两种方式:
struct DATA{
int a[2];
int c;
};
我们也可以先定义结构体再定义结构体变量
struct 结构体名
{
成员表
成员函数
};
2.成员调用
结构体变量与各个成员之间引用的一般形式为:
结构体变量名. 成员名
对于上面定义的结构体变量,我们可以这样操作:
cin>>data_a.a[0]>>data_a.a[1]; //一般情况下不能写 cin>>data_a;
int a=data_a.a[0]+data_a.a[1]; //就像用整形变量一样用a[0]、a[1]
data_b=data_a; //结构体之间的相互赋值是合法的
data_a.c=0; //就如同给整形变量赋值
实际上结构体成员的操作与该成员类型所具有的操作是一致的。
成员运算符“.”在存取成员数值时使用,其优先级最高,并具有左结合性。在处理包含结构体的结构体时,可记作:strua. strub. membb
这说名结构体变量 strua 有结构体成员 strub;结构体变量 strub 有成员 membb。
3.成员函数调用
结构体成员函数调用的一般形式为:
结构体变量名. 成员函数
结构体成员函数默认将结构体变量作为引用参数。