怎樣從乙個函式返回多個值

2021-09-06 14:58:02 字數 620 閱讀 3809

函式都是單一返回值的,沒有多返回值的情況。

如果說有的話,有以下兩種方法勉強可以說是多返回值的情況:

1,返回乙個陣列。陣列可以儲存多個資料,從而實現多返回值情況。

2,利用引用引數達到返回的效果。函式返回值設定成bool型用以表明函式的返回狀態,具體功能實現都用引用引數實現。

個人推薦使用第二種方法,在php中大多函式都是以bool型作為返回值返回函式狀態的。這樣可以避免一些細節問題。

用指標返回結果會很麻煩。

要特別小心不要把函式中的區域性變數的位址返回出來。

返回結構本身沒有問題,但是結構中的指標又容易出狀況。

好的做法,返回結構,並且不要在結構中包含指標型別成員。

如果一定需要返回指標,這種情況多數在於字串,這時候,你應該傳入乙個已經分配了記憶體的指標和長度,在函式中填充。還有一種情況,就是初始化某個結構,這時候你不應當提供返回值,而是把結構的位址作為引數傳入。

在我們自己的**中:

不應該在函式的返回值中使用或者包含指標。

任何需要傳出的指標,都應該從引數中傳入並且提供長度資訊。

函式內部使用的指標要自己在內部銷毀,不要銷毀的,必須要從引數中獲得。

除非你的**本身就是做記憶體分配用的,否則要遵守上面的建議。

乙個函式中返回多個值

如把多個需要返回的值作相應的處理後變成乙個可以用return 語句返回的資料,再在主調函式中拆開返回的資料使之變成幾個值。那麼當我們希望從乙個函式中返回多個值時,用什麼方法去實現比較合理呢?2方法1 利用全域性變數 分析 全域性變數作為c 語言的乙個知識點,雖然我們都了解它的特點,但在實際教學過程中...

乙個函式返回多個值 C

1 2public void getvalues string userid,string password,outstring string username,outbool flag 313 else 1417 18 19private void btnlogin click object se...

如何讓乙個函式返回多個值(C )

有兩種方法 1.使用指標變數宣告函式 或者使用陣列變數 2.使用傳出引數 第二種方法 我用例子說明。首先聲名乙個函式,定義如下 public bool checkuser string username,out string password,out int state else return fa...