一、结构体数组
作用:将自定义的结构体放入到数组中方便维护
语法:struct 结构体名 数组名 [元素个数]={ {},{} ,··· ,{} }
eg:
#include<iostream>
#include<string>
using namespace std;
struct student
{
string name;
int age;
int score;
};
int main()
{
student arr[3] = {
{"张",18,80},
{"李",19,60},
{"王",20,30},
};
arr[2].name = "赵";
arr[2].age = 80;
arr[2].score = 60;
for (int i = 0; i < 3; i++)
{
cout << "姓名:" << arr[i].name << " 年龄:" << arr[i].age << " 分数:" << arr[i].score << endl;
}
}
二、结构体指针
作用:通过指针访问结构体中的成员
利用操作符" -> "可以通过结构体指针访问结构体属性
eg:
#include<iostream>
#include<string>
using namespace std;
struct student
{
string name;
int age;
int score;
};
int main()
{
student stu = { "张",18,100 };
student* p = &stu;
p->score = 80;
cout << "姓名:" << p->name << " 年龄:" << p->age << " 分数:" << p->score << endl;
}
总结:结构体指针可以通过" -> "操作符来访问结构体中的成员
三、结构体嵌套
作用:结构体中的成员可以是另一个结构体
eg:
#include<iostream>
#include<string>
using namespace std;
struct student
{
string name;
int age;
int score;
};
struct teacher
{
int id;
string name;
int age;
student stu;
};
int main()
{
teacher t1={ 10000,"老王",40, "张三",18,100 };
cout << "教师职工编号:" << t1.id<< " 姓名:" << t1.name << " 年龄:" <<t1.age << endl;
cout << "学生姓名:" << t1.stu.name << " 年龄:" << t1.stu.age<< " 考试分数:" << t1.stu.score << endl;
}
总结:在结构体中可以定义另一个结构体作为成员,用来解决实际问题