1.使用指针做函数参数,返回多个值
#include <iostream>
using namespace std;
int fun(int a,int b,int *sub)//用该指针来接收下面的地址,把&z的值传进来
{
*sub=a-b;
return a+b;
}
void main()
{
int z;
int x=2;
int y=1;
int add=fun(x,y,&z);
cout<<add<<endl;z
cout<<z<<endl;
}
注意:return不能返回指向函数局部变量的指针!局部变量是在运行栈中自动分配的,
函数退出后就没有意义了,所以返回指向它的指针也就成了悬空指针。
2.使用结构体返回
#include <iostream>
using namespace std;
struct Result
{
int add;
int sub;
};
Result fun(int a,int b)
{
Result ret;
ret.add=a+b;
ret.sub=a-b;
return ret;
}
int main()
{
Result str;
int x=2;
int y=1;
str=fun(x,y);
cout<<ret.add<<endl;
cout<<ret.sub<<endl;
}
3.利用全局变量
#include <iostream>
using namespace std;
int add =0;
void fun(int a,int b)
{
int z;
z=a-b;
add=a+b;
return z;
}
int main()
{
int sub;
int x=2
int y=1;
sub=fun(x,y);
cout<<sub<<endl;
cout<<add<<endl;
}