C++系列十四:结构体

简介: C++系列十四:结构体

C++中的结构体

一、结构体的定义

在C++中,结构体是一种自定义的数据类型,它允许我们将不同类型的数据组合在一起。结构体可以包含任意类型的数据,包括基本数据类型、指针、数组、其他结构体等。

定义结构体的语法如下:

struct 结构体名 {
    数据类型1 成员变量1;
    数据类型2 成员变量2;
    ...
};

二、结构体的使用

定义了结构体之后,我们就可以声明结构体类型的变量,并为其赋值。下面是一个简单的示例:

#include <iostream>
using namespace std;
struct Person {
    string name;
    int age;
};
int main() {
    Person p1; // 声明一个Person类型的变量p1
    p1.name = "Alice"; // 为p1的name成员变量赋值
    p1.age = 25; // 为p1的age成员变量赋值
    cout << "Name: " << p1.name << ", Age: " << p1.age << endl; // 输出p1的值
    return 0;
}

在上面的示例中,我们定义了一个名为Person的结构体,它包含两个成员变量:name和age。在main函数中,我们声明了一个Person类型的变量p1,并为其成员变量赋值。最后,我们输出了p1的值。

除了定义结构体类型之外,我们还可以使用结构体类型来定义数组、指针等。下面是一个示例:

#include <iostream>
using namespace std;
struct Person {
    string name;
    int age;
};
int main() {
    Person p1{"Bob", 30}; // 声明并初始化一个Person类型的变量p1
    Person p2 = {"Charlie", 35}; // 声明一个Person类型的变量p2,并使用初始化列表进行初始化
    cout << "Name: " << p1.name << ", Age: " << p1.age << endl; // 输出p1的值
    cout << "Name: " << p2.name << ", Age: " << p2.age << endl; // 输出p2的值
    return 0;
}

在上述示例中,我们使用结构体类型定义了两个变量p1和p2,并分别进行了初始化。初始化时,我们使用了初始化列表语法,将成员变量的值直接赋给变量。

除了定义变量之外,我们还可以使用结构体类型来定义函数。下面是一个示例:

#include <iostream>
using namespace std;
struct Person {
    string name;
    int age;
};
void printPerson(Person p) {
    cout << "Name: " << p.name << ", Age: " << p.age << endl;
}
int main() {
    Person p1{"Alice", 20};
    printPerson(p1); // 输出p1的值
    return 0;
}

在上面的示例中,我们定义了一个名为printPerson的函数,它接受一个Person类型的参数,并输出该参数的值。在main函数中,我们声明并初始化了一个Person类型的变量p1,然后将其作为参数传递给printPerson函数。

总结:结构体是一种非常有用的自定义数据类型,它可以让我们将不同类型的数据组合在一起,方便管理和使用。通过定义结构体类型、声明变量、初始化变量以及定义函数等方式,我们可以灵活地使用结构体来满足不同的需求。

相关文章
|
2月前
|
数据处理 C# C++
如何使用C#和C++结构体实现Socket通信
如何使用C#和C++结构体实现Socket通信
|
2月前
|
C++
.C++中结构体数组docx
.C++中结构体数组docx
14 0
|
6月前
|
编译器 C语言 C++
C/C++内存对齐规则(结构体、联合体、类)
C/C++内存对齐规则(结构体、联合体、类)
|
8月前
|
存储 C++
32.【C/C++ 结构体全类型 (详解)】(二)
32.【C/C++ 结构体全类型 (详解)】
45 0
|
8月前
|
存储 编译器 C++
32.【C/C++ 结构体全类型 (详解)】(一)
32.【C/C++ 结构体全类型 (详解)】
42 0
|
25天前
|
C++
C++结构体
C++结构体
|
1月前
|
NoSQL C++
c++中包含string成员的结构体拷贝导致的double free问题
c++中包含string成员的结构体拷贝导致的double free问题
9 0
|
2月前
|
设计模式 算法 编译器
【C++ 泛型编程 入门篇】C++ 元编程 :模板结构体的的使用教程
【C++ 泛型编程 入门篇】C++ 元编程 :模板结构体的的使用教程
59 1
|
2月前
|
存储 程序员 Shell
【C/C++ 基本语法 结构体】C++ 结构体声明(定义)以及不同写法的差异
【C/C++ 基本语法 结构体】C++ 结构体声明(定义)以及不同写法的差异
22 1
|
4月前
|
JSON 数据格式 C++
C++ Json和结构体或类的转换
C++ Json和结构体或类的转换
64 0