结构体数组怎么初始化
结构体数组在定义的同时也可以初始化,例如:
struct stu{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在小组
float score; //成绩
}class[5] = {
{"Li ping", 5, 18, 'C', 145.0},
{"Zhang ping", 4, 19, 'A', 130.5},
{"He fang", 1, 18, 'A', 148.5},
{"Cheng ling", 2, 17, 'F', 139.0},
{"Wang ming", 3, 17, 'B', 144.5}
};
当对数组中全部元素赋值时,也可不给出数组长度,例如:
struct stu{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在小组
float score; //成绩
}class[] = {
{"Li ping", 5, 18, 'C', 145.0},
{"Zhang ping", 4, 19, 'A', 130.5},
{"He fang", 1, 18, 'A', 148.5},
{"Cheng ling", 2, 17, 'F', 139.0},
{"Wang ming", 3, 17, 'B', 144.5}
};
扩展资料:
定义结构体数组和定义结构体变量的方式类似,请看下面的例子:
struct stu{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在小组
float score; //成绩
}class[5];
表示一个班级有5个学生。
参考资料:C语音中文网-C语言结构体数组
#include <iostream>
#include <string>
#include <iomanip>
#include <memory>
using namespace std;
// custom_type
typedef struct tagStudent{int Id;string Name;}Student;int main(){// 设置左对齐
cout.flags(ios::left);
// 方式1: 适用于提前知道具体数据的情况 Student arrStu1[5] = {{1, "Name_1"}, {2, "Name_2"}, {3, "Name_3"}, {4, "Name_4"}, {5, "Name_5"}}; cout<<"Method_1:"<<endl;
for (int i=0; i<5; i++){cout<<setw(4)<<"Id:"<<arrStu1[i].Id<<", "
<<setw(6)<<"Name:"<<arrStu1[i].Name<<endl;}cout<<endl;
// 方式2: 具体数据可能稍后才能得到的情况 Student arrStu2[5]; memset(arrStu2, 0, sizeof(arrStu2)); cout<<"Method_2:"<<endl;