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 结构体案例
略