主题
结构体定义与使用
在 C++ 中,结构体(struct
)是用户自定义的数据类型,它可以将不同类型的数据组合成一个整体。结构体使得相关的数据可以封装在一起,并作为一个单一的单位进行处理。
结构体定义
结构体的定义包括关键字 struct
,然后是结构体名及其包含的数据成员。每个数据成员可以是不同的数据类型,结构体成员通过 .
运算符来访问。
示例:定义结构体
cpp
#include <iostream>
using namespace std;
struct Person {
string name;
int age;
};
int main() {
Person p1; // 声明结构体变量 p1
// 初始化成员
p1.name = "Alice";
p1.age = 25;
// 输出结构体成员
cout << "Name: " << p1.name << endl;
cout << "Age: " << p1.age << endl;
return 0;
}
输出:
Name: Alice
Age: 25
在此示例中,结构体 Person
定义了两个成员变量:name
和 age
。在 main
函数中,我们通过结构体变量 p1
来访问和修改这些成员。
结构体初始化
结构体可以通过不同方式进行初始化:
1. 直接初始化
结构体成员可以在声明时直接初始化。
cpp
Person p1 = {"Alice", 25}; // 直接初始化
2. 使用构造函数初始化
结构体也可以使用构造函数进行初始化(C++11 起支持)。
cpp
struct Person {
string name;
int age;
Person(string n, int a) : name(n), age(a) {} // 构造函数
};
Person p1("Alice", 25); // 使用构造函数初始化
访问结构体成员
访问结构体的成员需要使用 点运算符(.
)。例如,要访问 Person
类型的变量 p1
的成员 name
,可以使用 p1.name
。
cpp
cout << p1.name; // 访问成员 name
结构体数组
可以创建结构体数组来存储多个结构体对象。例如:
cpp
Person people[3]; // 创建一个 Person 类型的数组
people[0].name = "Alice";
people[0].age = 25;
people[1].name = "Bob";
people[1].age = 30;
people[2].name = "Charlie";
people[2].age = 35;
结构体指针
结构体也可以通过指针进行操作,指针使用 箭头运算符(->
)来访问成员。
cpp
Person p1 = {"Alice", 25};
Person* ptr = &p1; // 指向 p1 的指针
cout << ptr->name << " is " << ptr->age << " years old." << endl;
输出:
Alice is 25 years old.
在这个例子中,ptr
是指向 Person
类型的指针,我们使用箭头运算符来访问 p1
的成员。
小结
- 结构体 是 C++ 中用来组合不同类型数据的用户自定义数据类型。
- 结构体成员可以是不同类型,可以通过 点运算符 访问。
- 结构体可以通过直接初始化、构造函数或指针来使用。
- 使用结构体时,可以通过结构体变量、数组或指针来管理和操作数据。
结构体的使用在管理相关数据时非常方便,它帮助组织复杂的数据并提升代码的可读性和可维护性。