C++结构体数组的用法(附带实例)
在 C++ 中,如果一个数组的元素是结构体类型,这样的数组就称为结构体数组。
2) 定义结构体类型的同时声明结构体数组。例如:
3) 省略结构体类型名,直接声明结构体数组。例如:
4) 声明结构体数组时,可以直接对数组进行初始化。例如:
【实例】某网站“双11”做促销活动,利用结构体指针访问数组,输出销量前5名的信息。代码如下:
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