構造体を返すためにC ++のポインタと配列とポインタと機能を使用して複数の値を達成するために

 

機能を実装するC ++のポインタと配列を使用して複数の値を返す
DEMO1

書式#include <iostreamの>
 使用して 名前空間はstdを、
int型 *テスト(int型int型int型);
INT のmain()
{ 
int型 *結果=試験(123 )。
COUT <<結果[ 0 ] << ENDL <<結果[ 1 ] << ENDL <<結果[ 2 ] << ENDL。
getchar関数(); 
リターン 0 ; 
} 

INT *(試験INTint型 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 メイン()
{ 
結果の戻り値 =試験(12.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

 

 

おすすめ

転載: www.cnblogs.com/sea-stream/p/11129961.html