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

发布时间:2026/7/8 2:22:35
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;数据一多变量就开始散了。我们只能通过变量名里的1、2、3来判断这些信息属于哪个学生。如果后面再加上学号、班级、性别变量数量会越来越多代码也会越来越不好管理。结构体就是用来解决这类问题的。它可以把一组相关的数据放到一起比如把一个学生的姓名、年龄和成绩打包成一个整体。结构体的基本写法结构体用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.x和p.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这个变量。总结今天这篇我们先从概念上认识了结构体。结构体可以把多个相关变量放到一个整体里。它适合描述一个事物的多个属性比如学生的姓名、年龄、成绩图书的书名、作者、价格。这篇先记住几个点用struct定义结构体类型。结构体里面可以放多个成员变量。定义结构体变量后用点号访问成员。结构体定义结束后要加分号。结构体适合管理一组相关的数据。对于刚开始学 C 的同学来说结构体是一个很重要的过渡。前面我们更多处理单个变量、数组和字符串到了结构体这里就开始把不同类型的数据组合在一起了。不用一开始就把所有用法都记住。先理解它为什么要出现再多敲几遍基础代码慢慢就会顺起来。那这篇就先到这里。如果觉得有帮助记得点赞、关注和收藏谢谢有什么问题欢迎在评论区留言我们一起交流。我们下篇见