#include<iostream>
#include<Windows.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
struct programer {
char name[32];
int age;
int salary;
};
//方法一:形参使用值传递
struct programer add_salary(struct programer p, int num)
{
p.salary += num;
return p;
}
//方法二:形参使用结构体指针
void add_salary1(struct programer *p, int num)
{
p->salary += 20000;
}
//方法三:形参使用引用
void add_salary2(struct programer &p, int num)
{
p.salary += num;
}
//方法四:形参使用值传递,返回引用
struct programer &add_salary3(struct programer p, int num)
{
p.salary += num;
return p;
}
int main()
{
struct programer martin;
strcpy_s(martin.name , "小牛");
martin.age = 18;
martin.salary = 20000;
martin = add_salary(martin, 20000);
cout << martin.salary << endl;
cout << "----------------------------" << endl;
add_salary1(&martin, 20000);
cout << martin.salary << endl;
cout << "-------------------------------" << endl;
add_salary2(martin, 20000);
cout << martin.salary << endl;
cout << "------------------------------" << endl;
martin=add_salary3(martin, 20000);
cout << martin.salary << endl;
system("pause");
return 0;
}