【課題4−6 関数から値を返す】

 

<配列を使って複数の値を返す>

(例)  //呼び出しもと

       int a=5, b=6;

       int result[4];

       ...

       arithmetic(a, b, result);

      

       //関数側

       void arithmetic(int x, int, y, int *p) {

              *p = x + y;  

              *(p+1) = x -y;

              *(p+2) = x * y;

              *(p+3) = x / y;

       }

この例では関数arithmeticの中で,呼び出し元で用意した配列resultの領域に演算結果を書き込むことで,4つの値を返している.

 

<変数を使って複数の値を返す>

配列ではなく変数の中身に直接値を代入することも可能.

(例)  // 呼び出しもと

       int a=5, a=6;

       int wa, sa, seki, shou;

       arithmetic(a, b, &wa, &sa, &seki, &shou);

 

       // 関数側

       void arithmetic(int x, int, y,

                      int *sum, int *dif, int *mul, int *div) {

              *sum = x + y;

              *dif = x - y;

              ...

 

 

戻る