首页 > 编程笔记 > C++笔记 阅读:43

C++结构体作为函数参数(非常详细,附带实例)

结构体类型在 C++ 中可以作为函数参数传递,具体可细分以下两种情况:

C++结构体变量做函数参数

结构体变量可以像普通变量一样作为函数参数,这样可以减少函数参数个数,使代码更简洁。

【实例】使用结构体变量做函数参数,显示小喵的信息。具体代码如下:
#include <iostream>
#include <cstring>
using namespace std;
struct PersonInfo      //定义结构体
{
    char name[30];
    float weight;
    short age;
};
void ShowStuctMessage(struct PersonInfo MyInfo)    //自定义函数,输出结构体变量成员
{
    cout << "小喵的名字:"<< MyInfo.name << endl;
    cout << "小喵的体重:"<< MyInfo.weight << endl;
    cout << "小喵的年龄:"<< MyInfo.age << endl;
}
int main()
{
    PersonInfo pinfo;      //声明结构体
    strcpy(pinfo.name,"草莓");
    pinfo.weight=2.5f;
    pinfo.age=2;
    ShowStuctMessage(pinfo);      //调用函数 ShowStuctMessage()
}
程序运行结果为:

小喵的名字:草莓
小喵的体重:2.5
小喵的年龄:2

程序中定义的函数 ShowStuctMessage() 使用 PersonInfo 结构体为参数,如果不使用结构体为参数,则需要将 weight、name、age 这 3 个成员分别定义为参数。

C++结构体指针做函数参数

使用结构体指针做函数参数时,传递的只是地址,减少了时间和空间上的开销,能显著提高程序的运行效率,在实际应用中效果比较好。

【实例】使用结构体指针变量做函数参数,显示新员工的信息。具体代码如下:
#include <iostream>
#include <cstring>
using namespace std;
struct PersonInfo
{
    char name[30];
    int index;
    char work[30];
};
void ShowStuctMessage(struct PersonInfo *pInfo)
{
    cout << "姓名:"<<pInfo->name << endl;
    cout << "职员号:"<<pInfo->index << endl;
    cout << "职位:"<<pInfo->work<< endl;
}
int main()
{
    PersonInfo pinfo;
    strcpy(pinfo.name,"张伟");
    pinfo.index=14;
    strcpy(pinfo.work,"开发部");
    cout<<"--------信息如下--------"<<endl;
    ShowStuctMessage(&pinfo);
}
运行结果为:

--------信息如下--------
姓名:张伟
职员号:14
职位:开发部

相关文章