结构体
结构体基本概念
结构体属于用户自定义的数据类型,允许用户存储不同的数据类型
结构体的定义和使用
语法:
Struct 结构体名{结构体成员列表};
通过结构体创建变量的方式有三种:
Struct 结构体名 变量名
Struct 结构体名 变量名={成员1值,成员2值…}
定义结构体时顺便创建变量
自定义数据类型,一些类型集合组成的一个类型
语法 struct 类型名称{成员列表}
通过学生类型创建具体学生
2.1 Struct Student s1
Struct student s1;
//给s1属性赋值,通过.访问结构体变量中的属性
s1.name=”张三”
s1.age=18;
s1.score=100;
2.2 Struct student s2={…}
Struct Student s2={“李四”,19,80};
2.3在定义结构体时顺便创建结构体变量
总结1:定义结构体时的关键字是struct,不可省略。
总结2:创建结构体变量时,关键字struct可以省略。
总结3:结构体变量利用操作符“.“访问成员。
结构体数组
Struct 结构体名 数组名[元素个数]={ {},{},{} }
1、定义结构体
2、创建结构体数组
Struct student stuArray[3]=
{
{“张三”,18,100},
{“李四“,28,99}
{“王五“,38,66}
};
3、给结构体数组中的元素赋值
StuArray[2].name=”赵六”;
stuArray[2].age=80;
stuArray[2].score=60;
4、遍历结构体数组
for (int i=0;i<3;i++)
{
Cout<< ”姓名:” <<stuArray[i]
}
结构体指针
//1、创建学生结构体变量
Struct student s={“张三“,18,100};
//2、通过指针指向结构体变量
Student *p=&s;
//3、通过指针访问结构体变量中的数据
//通过结构体指针 访问结构体中的成员属性,需要利用”->”
Cout<<” 姓名:”<<p->name<<” 年龄:”<<p->age
结构体嵌套结构体
作用:结构体中的成员可以是一个结构体。
例如:每个老师辅导一个学员,一个老师的结构体中,记录一个学生的结构体。
示例:
//学生结构体定义
Struct student
{
String name;//姓名
Int age;//年龄
Int score;//分数
};
//教师结构体定义
Struct teacher
{
//成员列表
Int id;//职工编号
String name;//教师姓名
Int age;//教师年龄
Struct student stu; //子结构体 学生(定义老师的结构体之前,先定义学生的结构体。)
};
Int main()
{
//结构体嵌套结构体
//创建老师
Teacher t;
t.id=10000;
t.name=”老王”;
t.age=50;
t.stu.name=“小王”;
t.stu.age=20;
t.stu.score=60;
cout<<”老师姓名”<<t.name<<endl;
system(“pause”);
return 0;
}
结构体做函数参数
作用:将结构体作为参数想函数中传递
传递方式有两种:
值传递
地址传递
总结:如果不想修改主函数中的数据,用值传递,反之用地址传递。
结构体中const使用场景
作用:用const来防止误操作