结构体与指针
struct Hero hero = {"刘备",63,"男"};
struct Hero *p = &hero; //结构体指针
cout << hero.name << "\t" << p->age << endl;
// 结构体数组
struct Hero heroarr[3] = {
{"刘备", 63, "男"},
{"关羽", 58, "男"},
{"张飞", 55, "男"}
};
// 获取结构体数组的首地址
struct Hero *firstHeroPtr = heroarr;
// 直接使用数组访问是可以用.访问成员
cout << heroarr[0].name << "\t" << firstHeroPtr->age << endl;
结构体数组案例
// 也可以使用 struct Hero arr[] 接收参数
void bubbleSort(struct Hero *arr, int len)
{
for(int i = 0; i < len -1; i++)
{
for(int j = 0; j < len -i -1; j++)
{
if(arr[j].age > arr[j+1].age)
{
struct Hero tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
void printResult(struct Hero *arr, int len)
{
for(int i = 0; i < len; i++)
{
cout << arr[i].name << "\t" << arr[i].age << "\t" << arr[i].sex << endl;
}
}
int main()
{
struct Hero heroArr[5] = {
{"刘备",63,"男"},
{"关于",58,"男"},
{"张飞",55,"男"},
{"马超",47,"男"},
{"吕布",37,"男"},
};
int len = sizeof(heroArr) / sizeof(heroArr[0]);
// 冒泡排序 传递的是数组的首地址
bubbleSort(heroArr, len);
// 打印排序后的结果
printResult(heroArr, len);
return 0;
}