教程 cpp tutorial

结构体定义与使用

在 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++ 中用来组合不同类型数据的用户自定义数据类型。
  • 结构体成员可以是不同类型,可以通过 点运算符 访问。
  • 结构体可以通过直接初始化、构造函数或指针来使用。
  • 使用结构体时,可以通过结构体变量、数组或指针来管理和操作数据。

结构体的使用在管理相关数据时非常方便,它帮助组织复杂的数据并提升代码的可读性和可维护性。