一个函数如何返回多个参数

一个函数如何返回多个参数

方法概述

一个函数返回多个参数的方法主要有以下几种:
[http://bbs.csdn.net/topics/70326758]
1.用指针
2.用引用
3.用结构体
4.用STL中的pair**请参考这篇博客**[http://blog.csdn.net/huang_xw/article/details/8201671]
下面针对代码对这四种方法进行说明:

代码实现

#include <iostream>
#include <utility>
using namespace std;
typedef struct aaa
{
    int a;
    int b;
}AAA;
void Fun(int* a, int* b)
{
    int i = 2;
    int j = 3;
    *a = i;
    *b = j;
}

void yinyongFun(int &a, int& b)
{
    int i = 2;
    int j = 3;
    a = i;
    b = j;
}
pair<int,int> Test_pair(int a,int b)
{
    pair<int, int>PairA(12, 13);
    PairA.first = a * 2;
    PairA.second = b * 2;
    return PairA;
}

AAA jiegoutiFun(int a, int b)
{
    AAA ab;
    ab.a = a * 2;
    ab.b = b * 3;
    return ab;
}
int main()
{
    //指针的形式 一个函数返回 多个参数
    /*int i, j; int *a, *b; a = &i; b = &j; Fun(a,b); cout << *a << " " << *b << endl;*/

    //引用的形式 返回多个参数
    /*int a, b; yinyongFun(a,b); cout << a << " " << b << endl;*/

    //结构体的形式 返回多个参数
    /*int a = 2, b = 3; AAA abResult = jiegoutiFun(a,b); a = abResult.a; b = abResult.b; cout << a << " " << b << endl;*/



    //pair返回两个变量
    int a = 10;
    int b = 11;
    a = Test_pair(a,b).first;
    b = Test_pair(a,b).second;
    cout << a << " " << b << endl;

    system("pause");
    return 0;
}

你可能感兴趣的:(函数,指针,STL)