结构体数组
/*
结构体数组
每个元素都是一个结构体
*/
#include <iostream>
#include <string>
using namespace std;
// 定义Student结构体
struct Student{
string name; //成员
int age;
int num;
char level;
};
void print(Student s[],int n){
for(int i=0;i<n;i++){
cout<<s[i].name<<" "<<s[i].age<<" "<<s[i].num<<" "<<s[i].level<<endl;
}
cout<<endl;
}
int main() {
// 一、先定义后赋值
Student a[3]; //定义后逐个赋值
// 对a[0]元素进行赋值,因为a[0]是一个结构体,可以通过.获取其成员
a[0].name = "张三";
a[0].age = 16;
a[0].num = 1;
a[0].level = 'A';
// 直接对a[1]赋值一个结构体
a[1] = {"李四",17,2,'C'};
cout<<a[1].name<<endl; //输出
// 二、定义时赋值
// 形式一:对每个元素赋值一个结构体,与二维数组类似
Student b[3] = {{"张三",16,1,'A'},{"李四",17,2,'B'},{"王五",16,3,'C'}};
print(b, 3);
/*
输出:
张三 16 1 A
李四 17 2 B
王五 16 3 C
*/
// 形式二:也可以扁平化赋值,里面的{}去掉
Student b2[3] = {"张三",16,1,'A',"李四",17,2,'B',"王五",16,3,'C'};
print(b2, 3);
/*
输出:
张三 16 1 A
李四 17 2 B
王五 16 3 C
*/
// 形式三:如果长度不够,其他值默认为0
Student b3[3] = {"张三",16,1,'A'};
print(b3, 3);
/*
输出:
张三 16 1 A
0 0
0 0
*/
return 0;
}