8 结构体
8.1 结构体概念
结构体属于用户自定义的数据类型。
8.2 结构体定义和使用
语法:struct 结构体名 {结构体成员列表};
使用.
访问成员。
e:
// 结构体定义
struct Student {
string name;
int age;
int score;
};
//创建student
//1. (在C++中,struct可以省略)
struct Student s1;
s1.name = "张三";//...
//2.
struct Student s2 = {"李四", 19, 80};
// 3.定义结构体在最后的}后面创建。不推荐
8.3 结构体数组
结构体组成的数组
struct Student {
string name;
int age;
int score;
};
//结构体数组
Student arr[3] = {
{"张三", 18 ,80},
{"李三", 19 ,85},
{"李四", 18 ,90}
};
8.4 结构体指针
利用->
用指针访问结构体属性。
Student std = {"张三", 18 ,80};
Student * p = & stu;
cout<< p->name <<endl;
8.5 结构体嵌套
结构体中的成员可以是结构体。
8.6 结构体作为函数参数
-值传递 -地址传递
//-值传递
void print_Student(Student stu){
cout << stu.name << stu.age<<stu.score;
}
//-地址传递
void print_Student2(Student *stu){
cout << stu->name << stu->age << stu->score;
}
8.7 结构体中const
const使用示例:
void print_Student2(const Student *stu){
//stu->age = 100 // 不能修改。
cout << stu->name << stu->age << stu->score;
}
使用指针节省内存空间,并且避免 误修改的风险。
8.8 结构体案例
略