传递结构参数

传递结构值与传递结构的引用

#include <iostream>
#include <cstring>

using namespace std;
struct Person
{
    char name[20];
    unsigned long id;
    float salary;
};

Person allone[6] =  {{"jone",12345,339.0},
                    {"david",13916,449.0},
                    {"marit",27519,311.0},
                    {"jasen",42876,623.0},
                    {"peter",23987,400.0},
                    {"yoke",12335,511.0}};
void print(Person pr)
{
    cout<<pr.name<<" "
        <<pr.id<<" "
        <<pr.salary<<endl;
}

int main()
{
    for(int i=0;i<6;i++)
        print(allone[i]);
    return 0;
}

输出结果为:
jone 12345 339
david 13916 449
marit 27519 311
jasen 42876 623
peter 23987 400
yoke 12335 511

可对上述代码的print函数改进,使用引用声明&,运行效率将提高,因为传引用不会产生值的备份。

返回结构

#include <iostream>
#include <cstring>

using namespace std;
struct Person
{
    char name[20];
    unsigned long id;
    float salary;
};


void print(Person &pr)
{
    cout<<pr.name<<" "
        <<pr.id<<" "
        <<pr.salary<<endl;
}
Person GetPerson()
{
    Person temp;
    cin>>temp.name>>temp.id>>temp.salary;
    return temp;
}
int main()
{
    Person Employee[3];
    for(int i=0;i<3;i++)
    {
        Employee[i]=GetPerson();
        print(Employee[i]);
    }
    return 0;
}

上述代码中,Getperson函数返回值的类型是Person。

事实上,无论是传递结构值,传递结构的引用还是返回结构,都可以这样去理解,定义结构之后,这种结构就是一种变量类型,所以和以往我们使用函数传递参数的方法和函数返回值都是一样的。例如,如果是函数返回值一个结构变量,那么设置该函数返回类型就是该结构的名称

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值