结构体做函数参数

作用:将结构体作为参数想函数中传递

传递方式有两种:

  • 值传递
    1.值传递
    #include <iostream>
    #include<cstring>
    using namespace std;
    struct student
    {
        string name;
        int age;
        int score;
    };
    void print(struct student s)
    {
    cout << "姓名"<<s.name<<"年龄"<<s.age<<"成绩"<<s.score<<endl;
    }
    int main()
    {
        struct student s;
        s.name="张三";
        s.age=20;
        s.score=100;
        print(s);
        //cout << "姓名"<<s.name<<"年龄"<<s.age<<"成绩"<<s.score<<endl;
        return 0;
    }
    

  • 地址传递
//2.指针传递
#include <iostream>
#include<cstring>
using namespace std;
struct student
{
    string name;
    int age;
    int score;
};
void print1(struct student *p)
{
cout << "姓名"<<p->name<<"年龄"<<p->age<<"成绩"<<p->score<<endl;
}
int main()
{
    struct student s;
    s.name="张三";
    s.age=20;
    s.score=100;
    print1(&s);
    //cout << "姓名"<<s.name<<"年龄"<<s.age<<"成绩"<<s.score<<endl;
    return 0;
}

区别:

1.值传递:修饰形参实参不会发生变化

2.地址传递:修饰形参,实参形参都发生改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值