当结构比较小时,按值传递结构最合理。
传递2个值结构体,返回一个结构体,返回的结构体中的成员是参数各成员的和。
#include <cstring>
using namespace std;
struct things {
int good;
int bad;
};
things sum(things th1,things th2);
void show(things th);
int main(){
things th1 = {1,1};
things th2 = {2,2};
things th = sum(th1,th2);
show(th);
}
things sum(things th1,things th2){
things th = {th1.good+th2.good,th1.bad+th2.bad};
return th;
}
void show(things th){
cout << th.good << endl;
cout << th.bad << endl;
}
假设要传递结构的地址而不是整个结构以节省时间和空间,则需要重新编写前面的函数,使用指向结构的指针。修改原有函数需要三个点。
1、调用函数时,将结构的地址(&things)而不是结构本身(things)传递给它;
2、将形参声明为指向things的指针,即things *类型。由于函数不应该修改结构,因此使用了const修饰符;
3、由于形参是指针而不是结构,因此应间接成员运算符(->),而不是成员运算符(句点)。
void show(const things *th){
cout << th->good << endl;
cout << th->bad << endl;
}
调用
show(&th);标签:函数,show,things,th2,c++,th1,th,结构 From: https://blog.51cto.com/u_3764469/6056734