首页 > 编程笔记 > C++笔记 阅读:74

C++结构体数组的用法(附带实例)

C++ 中,如果一个数组的元素是结构体类型,这样的数组就称为结构体数组

C++结构体数组的声明和初始化

1) 先定义结构体类型,再声明结构体数组。例如:
struct PersonInfo      //定义结构体类型 PersonInfo
{
    int index;
    char name[30];
    short age;
};
PersonInfo Person[5];    //声明结构体数组 Person[5]

2) 定义结构体类型的同时声明结构体数组。例如:
struct PersonInfo      //定义结构体类型 PersonInfo
{
    int index;
    char name[30];
    short age;
}Person[5];            //同时声明结构体数组 Person[5]

3) 省略结构体类型名,直接声明结构体数组。例如:
struct               //省略结构体类型名
{
    int index;
    char name[30];
    short age;
}Person[5];           //直接声明结构体数组 Person[5]

4) 声明结构体数组时,可以直接对数组进行初始化。例如:
struct PersonInfo
{
    int index;
    char name[30];
    short age;
}Person[5] = {{1,"张三",20}, {2,"李可可",21}, {3,"朱桥",22}, {4,"元周",22}, {5,"王冰冰",22}};

当全部元素都进行初始化赋值时,可以不给出数组长度。这和普通数组是一样的。

C++指针访问结构体数组

指针可以指向一个结构体数组,这时结构体指针的值是整个结构体数组的首地址。结构体指针也可指向结构体数组的一个元素,这时结构体指针的值是该结构体数组元素的首地址。

【实例】某网站“双11”做促销活动,利用结构体指针访问数组,输出销量前5名的信息。代码如下:
#include <iostream>
using namespace std;
struct PersonInfo
{
    char cName[20];      //品牌名
    long long iNumber;         //销售量
}Person[5]={{"面膜",1458792365},
            {"洁面",3256565550},
            {"洗发露",3246558544},
            {"护发素",256897412},
            {"卸妆膏",155655655}};
int main()
{
    struct PersonInfo *pPersonInfo;
    pPersonInfo=Person;
    for(int i=0;i<5;i++,pPersonInfo++)
    {
        cout << "产品名:"<<pPersonInfo->cName << " ";
        cout << "销售量:"<<pPersonInfo->iNumber << endl;
    }
}
程序运行结果为:

产品名:面膜 销售量:1458792365
产品名:洁面 销售量:3256565550
产品名:洗发露 销售量:3246558544
产品名:护发素 销售量:256897412
产品名:卸妆膏 销售量:155655655

相关文章