![C++新经典](https://wfqqreader-1252317822.image.myqcloud.com/cover/184/44510184/b_44510184.jpg)
上QQ阅读APP看书,第一时间看更新
10.2 结构体数组与结构体指针
10.2.1 结构体数组
一个结构体变量能存放一组数据,例如上一节所讲的一名学员的学号、姓名、性别、年龄、地址、出生年月。那如果想存放10名学员的数据呢?显然得用数组,这就是结构体数组。结构体数组与普通数组非常类似,可以把每个数组元素都看成是一个结构体变量,上一节定义了student结构,本节就以这个结构(结构体类型可以简称为“结构”)为基础进行代码演示。
那怎样定义这个结构体数组呢?
(1)单独写成一行来定义。
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p199_86090.jpg?sign=1739353083-Hd56ZMHCTR2fuYSxQuIDsXp7DWkOmmMn-0-2aa02046741c5cf61b262a9654c8a9ea)
(2)定义结构时顺便定义结构体数组。看如下代码的结构体末尾:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p199_86092.jpg?sign=1739353083-yG0cK8SNeISCTYRhVHaiHbPaflo2ovQi-0-7afcb8494c0cad6848bda36d05740f00)
当然,在定义结构体数组时,也可以顺便进行初始化。看如下代码:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p199_86093.jpg?sign=1739353083-jCR4IuT1QZOnTBkp6M6KMQOxRqqlyw9y-0-4f6daa1263e33a55d5077f4492d80171)
定义的时候初始化还可以不指定数组元素个数,此时系统根据初始化的这些值自动推断出数组的元素是多少个。看如下代码:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p200_86095.jpg?sign=1739353083-4mADUSNU0xHesIbPwanIWh7zKNxhIsWo-0-3f4e5cbd96b2b90fc41a7d82aca80588)
可以看到,定义时的初始化的一般形式为:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p200_86096.jpg?sign=1739353083-Jz38B8RV2X9Ual5pEH71AXPZjt9KTbMy-0-0f5d82abcbfcc36051acc5ac3a89226a)
然后可以像使用普通结构体变量一样使用结构体数组。看如下代码:
![](https://epubservercos.yuewen.com/F329F6/23721607801994206/epubprivate/OEBPS/Images/Figure-p200_86098.jpg?sign=1739353083-fa0vPzFMc4JZLjHprAu79sUV2fTUBtkA-0-48c93d5766b803540ee8cb97334499bb)