29 结构体与类之结构体的定义与使用

C++完整教程

在上篇中,我们讨论了指针与引用的概念,深入了解了如何通过指针和引用来操作数据。现在我们将继续我们的学习之旅,关注于 结构体 的定义与使用。虽然 结构体 有许多相似之处,但它们在C++中的使用场景和目的各有不同。

结构体的定义

在C++中,结构体 是一种用户自定义的数据类型,它可以包含多个不同类型的数据成员。我们可以使用 struct 关键字来定义一个结构体。通常情况下,结构体 用于将一组相关的数据组合在一起,方便进行统一管理。

结构体的基本语法

1
2
3
4
5
struct StructureName {
DataType member1;
DataType member2;
// ...
};

例子:定义一个点的结构体

下面是一个定义二维平面中点的结构体 Point 的例子:

1
2
3
4
struct Point {
int x; // x坐标
int y; // y坐标
};

结构体的使用

定义了结构体后,我们可以创建该结构体类型的变量,并访问其成员。可以通过 . 操作符来访问结构体的成员。

1
2
3
4
5
6
7
8
9
int main() {
Point p1; // 声明一个 Point 类型的结构体变量 p1
p1.x = 10; // 访问成员 x
p1.y = 20; // 访问成员 y

// 输出坐标
std::cout << "Point p1: (" << p1.x << ", " << p1.y << ")" << std::endl;
return 0;
}

在这个例子中,我们首先声明了一个 Point 类型的变量 p1,然后给它的 xy 成员赋值,最后将其输出。

结构体的初始化

我们可以使用花括号来初始化结构体,简化代码的书写:

1
2
Point p2 = {30, 40}; // 使用初始化列表
std::cout << "Point p2: (" << p2.x << ", " << p2.y << ")" << std::endl;

使用结构体数组

结构体还可以用于创建结构体数组,这在处理多个具有相同类型的数据时非常有用。

1
2
3
4
5
6
7
8
9
Point points[3]; // 创建一个 Point 类型的数组

points[0] = {1, 2};
points[1] = {3, 4};
points[2] = {5, 6};

for (int i = 0; i < 3; i++) {
std::cout << "Point points[" << i << "]: (" << points[i].x << ", " << points[i].y << ")" << std::endl;
}

在这个例子中,我们创建了一个 Point 类型的数组 points,并将多个点的坐标赋值给数组中的元素。

结构体与函数

结构体也可以作为函数参数传递,这使得在函数中处理一组相关数据变得更加简单。

例子:传递结构体到函数

1
2
3
4
5
6
7
8
9
void printPoint(Point p) {
std::cout << "Point: (" << p.x << ", " << p.y << ")" << std::endl;
}

int main() {
Point p3 = {7, 8};
printPoint(p3); // 调用函数并传递结构体
return 0;
}

在这个例子中,我们定义了一个 printPoint 函数,它接收一个 Point 类型的参数 p,并输出其坐标。在 main 函数中调用时,我们传递了结构体 p3

总结

在C++中,结构体 是一种方便的数据组织方式,能够将相关属性结合在一起。通过上面的学习,我们掌握了如何定义和使用结构体,包括初始化、数组操作以及在函数中的应用。

接下来,我们将进入一个新主题,探讨 的基本概念。结构体 有许多相似之处,但它们在封装和数据保护方面提供了更强的功能。在下一篇中,我们将进一步深入了解这一重要的特性。

29 结构体与类之结构体的定义与使用

https://zglg.work/c-plusplus-zero/29/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-24

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论