📅  最后修改于: 2023-12-03 14:59:52.456000             🧑  作者: Mango
在 C++ 中,结构体(Struct)是一种自定义数据类型,它可以由多个不同类型的成员变量组成。结构体的成员变量可以是基本数据类型、指针、数组等。
结构指针(Struct Pointer)是指向结构体的指针变量,它可以用来操作结构体数据。
可以通过 struct
关键字来定义结构体,例如:
struct Student {
char name[50];
int age;
float score;
};
上面的代码定义了一个名为 Student
的结构体,它包含了三个成员变量:name
、age
、score
。
结构指针可以通过 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
运算符释放了结构体所占用的内存。