C++ 入门学习经验 14——结构体上:把多个变量打包成一个整体

📅 2026/7/8 2:37:31 👁️ 阅读次数 📝 编程学习
C++ 入门学习经验 14——结构体上:把多个变量打包成一个整体

大家好啊!这里是阳阳的博客,一个正在努力学习技术的大学生。

前面我们把数组和字符串重新梳理了一遍,从这篇开始进入一个新的知识点:结构体。

结构体刚开始看起来格式有点陌生,但它解决的问题很直观:当一堆变量本来就属于同一个事物时,我们可以把它们放到一起管理。

好了,废话不多说,咱们直接开始。


从学生信息开始看问题

假设我们要保存一个学生的信息,包括姓名、年龄和成绩。

如果只保存一个学生,可以这样写:

string name = "Tom"; int age = 18; double score = 92.5;

这样写没有问题,变量也很清楚。

但如果要保存三个学生的信息,代码可能会变成这样:

string name1 = "Tom"; int age1 = 18; double score1 = 92.5; string name2 = "Jack"; int age2 = 19; double score2 = 88.0; string name3 = "Lucy"; int age3 = 18; double score3 = 95.0;

数据一多,变量就开始散了。我们只能通过变量名里的123来判断这些信息属于哪个学生。

如果后面再加上学号、班级、性别,变量数量会越来越多,代码也会越来越不好管理。

结构体就是用来解决这类问题的。它可以把一组相关的数据放到一起,比如把一个学生的姓名、年龄和成绩打包成一个整体。


结构体的基本写法

结构体用struct定义。

比如我们想定义一个学生类型,可以这样写:

struct Student { string name; int age; double score; };

这里的Student是我们自己起的类型名,表示“学生”这种数据。

大括号里面的:

string name; int age; double score;

成员变量。可以先简单理解成结构体里面的小变量。

定义好结构体类型以后,就可以创建一个学生变量:

Student stu;

这句话和以前写:

int a;

其实有点像。

int是系统提供的类型,a是变量名。

Student是我们自己定义的类型,stu是变量名。

所以Student stu;的意思就是:定义一个学生变量stu


用点号访问结构体成员

有了结构体变量以后,要访问里面的成员,需要加个点号。

比如:

stu.name = "Tom"; stu.age = 18; stu.score = 92.5;

输出时也一样:

cout << stu.name << endl; cout << stu.age << endl; cout << stu.score << endl;

完整代码如下:

#include <iostream> #include <string> using namespace std; struct Student { string name; int age; double score; }; int main() { Student stu; stu.name = "Tom"; stu.age = 18; stu.score = 92.5; cout << stu.name << endl; cout << stu.age << endl; cout << stu.score << endl; return 0; }

这里大家先重点记住两个动作。

定义结构体类型:

struct Student { string name; int age; double score; };

使用结构体成员:

stu.name stu.age stu.score

点号可以理解成“从这个结构体变量里面取出某个成员”。


结构体像一个资料袋

我觉得结构体可以理解成一个资料袋。

一个学生有很多信息,比如姓名、年龄、成绩、学号。平时这些信息都属于同一个学生,所以放在一个资料袋里会更清楚。

Student stu;

就像准备了一个学生资料袋。

stu.name stu.age stu.score

就是从这个资料袋里拿出姓名、年龄和成绩。

这种理解对刚开始学结构体的同学会比较友好。先不用急着把结构体和类、对象这些概念放在一起想,现阶段先知道:结构体能把多个相关变量组织成一个整体。


结构体适合描述有多个属性的事物

结构体特别适合描述“一个事物有多个属性”的情况。

比如学生:

姓名、年龄、成绩

图书:

书名、作者、价格

坐标点:

x 坐标、y 坐标

日期:

年、月、日

比如坐标点可以这样写:

struct Point { int x; int y; };

使用时:

Point p; p.x = 3; p.y = 5;

这里的p表示一个点,p.xp.y分别表示这个点的横坐标和纵坐标。

如果不用结构体,也可以写两个普通变量:

int x = 3; int y = 5;

但点一多,变量之间的关系就容易乱。结构体能让代码更清楚,也更接近我们平时理解事物的方式。


刚开始容易写错的地方

结构体最容易漏的地方,是最后的分号。

错误写法:

struct Student { string name; int age; double score; }

正确写法:

struct Student { string name; int age; double score; };

大括号后面的这个分号一定要写。我刚开始学的时候也经常忘,因为看见大括号结束了,手就自然停了。

还有一个容易混的地方,是类型名和变量名。

Student stu;

这里Student是类型名,stu是变量名。

后面访问成员时,用的是变量名:

stu.name

不能写成:

Student.name

因为Student只是类型,真正保存数据的是stu这个变量。


总结

今天这篇,我们先从概念上认识了结构体。

结构体可以把多个相关变量放到一个整体里。它适合描述一个事物的多个属性,比如学生的姓名、年龄、成绩,图书的书名、作者、价格。

这篇先记住几个点:

  1. struct定义结构体类型。

  2. 结构体里面可以放多个成员变量。

  3. 定义结构体变量后,用点号访问成员。

  4. 结构体定义结束后要加分号。

  5. 结构体适合管理一组相关的数据。

对于刚开始学 C++ 的同学来说,结构体是一个很重要的过渡。前面我们更多处理单个变量、数组和字符串,到了结构体这里,就开始把不同类型的数据组合在一起了。

不用一开始就把所有用法都记住。先理解它为什么要出现,再多敲几遍基础代码,慢慢就会顺起来。

那这篇就先到这里。如果觉得有帮助,记得点赞、关注和收藏,谢谢!😄

有什么问题欢迎在评论区留言,我们一起交流。

我们下篇见~