结构体是C++中一种用户自定义的复合数据类型,它允许将不同类型的数据组合在一起。
1、基本语法
struct 结构体名 {
数据类型 成员1;
数据类型 成员2;
};
成员访问:使用点运算符(.)访问成员
初始化:可以使用花括号初始化列表
2、声明结构体变量
定义结构体后,可以像使用基本类型一样声明变量:
// 方法1:先定义结构体,再声明变量
struct Student {
string name;
int age
float score;
}
Student s1, s2;
// 方法2:定义结构体的同时声明变量
struct Teacher {
string name;
int id;
} t1, t2;
3、访问结构体成员
使用 点运算符(.) 访问结构体变量的成员:
#include
#include
using namespace std;
struct Student {
string name;
int age;
float score;
};
int main() {
Student s; // 声明结构体变量
// 给成员赋值
s.name = “张三”;
s.age = 18;
s.score = 95.5f;
// 访问成员并输出
cout << “姓名:” << s.name << endl;
cout << “年龄:” << s.age << endl;
cout << “成绩:” << s.score << endl;
return 0;
}
4、结构体初始化
可以在声明变量时直接初始化结构体成员:
// 方式1:按顺序初始化(需与结构体成员顺序一致)
Student s1 = {“李四”, 19, 88.0f};
// 方式2:C++11 起支持的成员名初始化(更清晰)
Student s2 = {
.name = “王五”,
.age = 20,
.score = 92.5f
};
5、结构体的高级用法
(1)结构体数组
可以创建结构体类型的数组,存储多个同类型的结构体数据:
Student class1[3] = {
{“赵六”, 18, 90.0f},
{“孙七”, 19, 85.5f},
{“周八”, 18, 93.0f}
};
// 访问数组中的结构体成员
cout << class1[0].name << endl; // 输出 “赵六”
(2)结构体指针
使用指针指向结构体,通过 箭头运算符(->) 访问成员:
Student s = {“吴九”, 20, 89.0f};
Student* p = &s; // 指针指向结构体变量
cout << p->name << endl; // 等价于 (*p).name
cout << p->age << endl;
(3)结构体嵌套
结构体中可以包含其他结构体作为成员:
// 定义表示日期的结构体
struct Date {
int year;
int month;
int day;
};
// 定义包含日期的结构体
struct Person {
string name;
Date birthday; // 嵌套结构体
};
// 使用嵌套结构体
Person p = {
“郑十”,
{2000, 5, 15} // 初始化嵌套的Date成员
};
cout << p.birthday.year << endl; // 输出 2000
1120

被折叠的 条评论
为什么被折叠?



