c ++语言struct结构体讲解
时间: 2024-09-06 07:01:06 浏览: 121
struct 结构体中数组和指针的操作
5星 · 资源好评率100%
C++中的`struct`结构体是一种复合数据类型,允许你将不同类型的数据项组合成一个单一类型。结构体通常用于表示一个具有多个属性的数据实体。下面将详细介绍C++中`struct`的几个关键方面:
1. 定义结构体:
结构体通过关键字`struct`后跟结构体名称和一系列在花括号中定义的成员来定义。每个成员可以是不同类型的变量,并且可以有自己的访问级别(public、private、protected)。
```cpp
struct Person {
std::string name; // 公有成员
private:
int age; // 私有成员
public:
float height; // 公有成员
};
```
2. 创建结构体变量:
可以通过指定结构体类型来创建变量,并且可以使用点操作符访问结构体成员。
```cpp
Person person1; // 创建一个Person类型的变量person1
person1.name = "张三";
person1.height = 175.5f;
```
3. 结构体指针:
可以使用指针指向结构体变量。通过使用箭头操作符(`->`)来访问结构体指针的成员。
```cpp
Person *personPtr = &person1;
personPtr->name = "李四";
```
4. 结构体作为函数参数:
结构体可以作为参数传递给函数。你可以传递结构体变量的副本或直接传递指向它的指针。
```cpp
void printPersonInfo(Person p) { // 传递副本
std::cout << "Name: " << p.name << ", Height: " << p.height << std::endl;
}
void printPersonInfoPtr(const Person* p) { // 传递指针
std::cout << "Name: " << p->name << ", Height: " << p->height << std::endl;
}
```
5. 结构体的构造函数和析构函数:
C++允许在结构体中定义构造函数和析构函数,以便在创建和销毁结构体变量时自动执行初始化和清理代码。
```cpp
struct Person {
std::string name;
int age;
float height;
// 构造函数
Person(std::string n, int a, float h) : name(n), age(a), height(h) {
// 初始化代码
}
// 析构函数
~Person() {
// 清理代码
}
};
```
阅读全文