📜  C++结构指针(1)

📅  最后修改于: 2023-12-03 14:59:52.456000             🧑  作者: Mango

C++ 结构指针

在 C++ 中,结构体(Struct)是一种自定义数据类型,它可以由多个不同类型的成员变量组成。结构体的成员变量可以是基本数据类型、指针、数组等。

结构指针(Struct Pointer)是指向结构体的指针变量,它可以用来操作结构体数据。

定义结构体

可以通过 struct 关键字来定义结构体,例如:

struct Student {
    char name[50];
    int age;
    float score;
};

上面的代码定义了一个名为 Student 的结构体,它包含了三个成员变量:nameagescore

创建结构指针

结构指针可以通过 struct 关键字和 * 运算符来创建,例如:

Student *p;

上面的代码创建了一个名为 p 的结构指针,它指向了 Student 结构体的地址。

访问结构成员

使用结构指针可以访问结构体的成员变量,可以通过 -> 运算符来访问,例如:

p->age = 18;

上面的代码给 p 指向的结构体的 age 成员赋值为 18。

动态创建结构体

可以使用 new 运算符动态创建结构体,例如:

p = new Student;

上面的代码使用 new 运算符动态创建了一个 Student 结构体,并将 p 指向了这个结构体的地址。

释放内存

动态创建的结构体在使用完后要手动释放内存,可以使用 delete 运算符来释放,例如:

delete p;

上面的代码释放了 p 所指向的结构体的内存。

示例程序

下面是一个简单的示例程序,演示了如何创建和使用结构指针:

#include <iostream>
using namespace std;

// 定义结构体
struct Student {
    char name[50];
    int age;
    float score;
};

int main() {
    // 创建结构指针并动态分配内存
    Student *p = new Student;

    // 给结构体赋值
    strcpy(p->name, "Tom");
    p->age = 18;
    p->score = 89.5;

    // 输出结构体的值
    cout << "Name: " << p->name << endl;
    cout << "Age: " << p->age << endl;
    cout << "Score: " << p->score << endl;

    // 释放内存
    delete p;

    return 0;
}

输出结果:

Name: Tom
Age: 18
Score: 89.5

上面的程序创建了一个 Student 结构体的指针,并使用 new 运算符动态分配了内存。然后,给结构体的成员变量赋值,并输出了这些值。最后,使用 delete 运算符释放了结构体所占用的内存。