C++从0到1全系列教程
1、结构体数组
-
结构体可以被定义成数组变量,本质上与其它类型的数组变量没有区别。
-
声明结构体数组的语法:
struct 结构体类型 数组名[数组长度];
-
初始化结构体数组,要结合使用初始化数组的规则和初始化结构体的规则。
struct st_girl girls[2]={{"西施",26,43.8,'X',true},{"西瓜",25,52.8,'X',false}};
-
使用结构体数组可以用数组表示法,也可以用指针表示法。
2、示例代码
#define _CRT_SECURE_NO_WARNINGS // C标准的字符串操作函数需要加这一行。
#include <iostream> // 包含头文件。
using namespace std; // 指定缺省的命名空间。
// 超女基本信息结构体st_girl,存放了超女全部的数据项。
struct st_girl
{
char name[21]; // 姓名。
int age; // 年龄。
double weight; // 体重(kg)。
char sex; // 性别:X-女;Y-男。
bool yz; // 颜值:true-漂亮;false-不漂亮。
};
int main()
{
// st_girl stgirl={"西施",26,33.8,'X',true}; // 创建结构体变量。
st_girl girls[3];
memset(girls, 0, sizeof(girls)); // 清空整个数组。
strcpy((girls+0)->name, "西施"); (girls+0)->age = 25; girls[0].weight = 45; girls[0].sex = 'X'; girls[0].yz = true;
girls[1] = { "西瓜",2,10.6,'Y',false }; // C++11标准的语法。
*(girls+2) = { "冰冰",23,50.3,'X',true };
for (int ii = 0; ii < 3; ii++)
{
cout << "姓名:" << (girls+ii)->name << ",年龄:" << (girls + ii)->age << ",体重:" << girls[ii].weight
<< ",性别:" << girls[ii].sex << "颜值:" << girls[ii].yz << endl;
}
}