C++基础(15):结构体
在实际情况下,往往要存储批量数据,比如,某个人的基本信息,包括:姓名、年龄、性别、身份证号码、住址等。有的同学说了,可以使用数据存储。说的很好,但是别忘了,数组只能存储同样类型的数据。
在学校中,经常需要统计学生成绩,即,同时记录学生的姓名、语文成绩、数学成绩等不同信息。记录姓名需要使用字符串类型的变量,而成绩则需要使用整型或者浮点类型的变量,这就不能使用数组进行记录了。
为了解决这一类问题,C++语言给出了一个构造数据类型–结构体。这次我们就来介绍结构体,结构体把不同类型的数据信息集合到一起,以便于处理这些信息。
结构体的定义
结构体的定义有以下形式:
|
|
C++中的结构体是由许多相同或者不同类型的数据构成的数据集合。上面的例子,一名学生有姓名(字符串),有成绩(整数),因此,可以如下定义:
|
|
例子中定义了一个名叫student的结构体类型,里面包括name、chinese、 math、english这几个变量,其中name是字符串类型,其他的变量都是整型。在定义结构体时,同时定义了变量a,然后又定义了变量b,a和b都是student类型。
变量a和b可以看作是a同学和b同学,用a.name表示a同学的姓名、a.math表示a同学的数学成绩。这些变量普通变量一样输入、赋值、计算等。
对于相同类型的结构体也可以直接赋值,比如,a = b;表示将b同学的所有信息赋值给a同学。
结构体的使用
由于结构体有些抽象,第一次学习的同学不是那么容易理解,下面举一个例子来帮助大家理解。
【例】谁是第一名?全班50个同学参加期末考试,共考了语文和数学两科。依次输入每个同学的姓名、语文成绩、数学成绩。然后,将总分第一名(有并列第一,按输入顺序,输出第一个同学)的姓名、语文成绩、数学成绩输出。
【分析】找出第一名,最先想到是排序。定义一个student类型,再定义一个student的数组,用来存放全班同学的姓名、语文成绩、数学成绩。或者使用打擂的方式,找出第一名,这样处理的话,就不用定义数组。
下面使用打擂的方式来解决这个问题。
|
|
- 原文作者:图图爸爸
- 原文链接:https://www.tubacode.com/post/cpp-struct.html
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。