C++学习笔记(指针、结构体数组)

结构体与指针

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;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容