结构体可以被定义成数组变量,本质上与其他类型的数组变量没有区别。
声明结构体数组的语法:struct 结构体类型 数组名[数组长度];(C++中struct关键字可以不写)
初始化结构体数组,要结合初始化数组的规则和初始化结构体的规则。
struct student people[2]={{'区亮钊',88,60.5,'Y',true},{'钟佳铭',18,60.5,'Y',true}};
使用结构体数组可以用数组表示法,也可以用指针表示法。
数组表示法如下:
#define _CRT_SECURE_NO_WARNINGS
//在VS中如果要使用C标准的字符串操作函数,需要在源代码最上面加上这行内容
#include <iostream>
using namespace std;
struct student {
char name[21];
int age;
double weight;
char sex; // 假设用 'Y' 表示男性,'X' 表示女性
bool yanzhi;
};
int main() {
struct student people[3];
memset(people, 0, sizeof(people));
people[0] = { "钟佳铭",18,60.5,'Y',true};
people[1] = { "区亮钊",88,60.5,'Y',true };
for (int i = 0; i < 3; i++) {
cout << people[i].name << people[i].age << people[i].weight << people[i].sex << people[i].yanzhi << endl;
}
return 0;
}
运行结果:
指针表示法如下(实际应用上不常用):
for (int i = 0; i < 3; i++) {
cout << people[i].name << (people+i)->age << people[i].weight << people[i].sex << people[i].yanzhi << endl;
}
return 0;