C++ / 引数のポインタ渡し(アドレス渡し) / 函数から多値を返したい

多値は返せないので、値の格納先となるアドレスを函数に複数渡してそれぞれのアドレスに値を書き込んでもらうことにする。

#include <iostream>
using namespace std;

void basicCalc(double a, double b, double *add, double *sub, double *mul, double *div){
    *add = a + b;
    *sub = a - b;
    *mul = a * b;
    *div = a / b;
}

int main(){
    double a = 100;
    double b = 3;

    double ans0, ans1, ans2, ans3; // この4つの変数に一挙に値を格納したいので、

    basicCalc(a, b, &ans0, &ans1, &ans2, &ans3); // その4つの変数のアドレスを函数に渡してその4つアドレスに直接値を書き込ませる。

    cout << ans0 << endl; 
    cout << ans1 << endl;
    cout << ans2 << endl;
    cout << ans3 << endl;


    system("pause");
    return 0;
}

f:id:ti-nspire:20181118131407p:plain