機能を実装するC ++のポインタと配列を使用して複数の値を返す
DEMO1
書式#include <iostreamの> 使用して 名前空間はstdを、 int型 *テスト(int型、int型、int型); INT のmain() { int型 *結果=試験(1、2、3 )。 COUT <<結果[ 0 ] << ENDL <<結果[ 1 ] << ENDL <<結果[ 2 ] << ENDL。 getchar関数(); リターン 0 ; } INT *(試験INT、int型 B、int型のC) { INT * PRESULT =新しい INT [ 3 ]。 PRESULT [ 0 ] = 。 PRESULT [ 1 ] = Bと、 PRESULT [ 2 ] = Cと、 リターンPRESULT。 }
輸出
1 2 3
C ++ポインタ機能は、複数の値を達成するための構造体を返し
DEMO2
書式#include <iostreamの> 使用して 名前空間はstdを、 構造体の結果 { int型最初; 二重の二; }。 結果テスト(int型、ダブルB)を、 INT メイン() { 結果の戻り値 =試験(1、2.1234 )。 coutの << returnvalue.first <<てendl << returnvalue.second << てendl; getchar関数(); リターン 0 ; } 結果テスト(int型、ダブルB) { 構造体結果RET。 ret.first= 。 ret.second = B。 戻る権利を。 }
輸出
1 2.1234
Demo3
戻り値として使用されるC ++構造
する#include <stdio.hに> のtypedef 構造体{ INT 。 int型のB; }ステュ。 STU getStu(int型のx、int型のY) { STU結果。 result.a = X。 result.b = Y。 戻り値の結果; } int型のmain() { int型、A = 2、B = 3 。 STUテスト = getStu(B) printf(" %D%D \ n " 、test.a、test.b)。 リターン 0 ; }
輸出
2 3
demo4
戻り値の構造体として使用するC ++ポインタ
する#include <stdio.hに> する#include <STDLIB.H> のtypedef 構造体{ INT 。 int型のB; }ステュ。 STU * getStu(int型のx、int型のY) { STU * pStu =(STU *)はmalloc(はsizeof (STU))。 pStu - > A = X。 pStu - > B = Y。 返すpStuを。 } int型のmain() { int型、X = 2、Y = 3 。 STU * pStu = getStu(X、Y) printf(" %D%D \ nは"、pStu-> A、pStu-> B); フリー(pStu); 戻り 0 ; }
輸出
2 3
参考:
https://blog.csdn.net/chaipp0607/article/details/64124704/
https://blog.csdn.net/dfq12345/article/details/73924580