1. 程式人生 > >C語言中函式呼叫怎麼返回兩個值

C語言中函式呼叫怎麼返回兩個值

在C語言中,函式只能返回一個值,要返回兩個值,可以改換思路,通過其它方式做到。

1 建立陣列,返回指標。

在要返回的兩個值型別相同時,可以用建立陣列的方式,將要返回的值存在陣列中,並返回陣列首地址,這樣就可以實現返回兩個值的效果。 需要注意的是,要返回陣列首地址,那麼返回的值不可以是區域性變數,有如下幾種是可以的: a) 使用靜態區域性變數儲存,並返回地址; b) 使用全域性變數儲存,返回地址; c) 函式中動態分配記憶體,並返回申請到的地址,此種方法需要注意,在使用後需要釋放; d) 在引數中傳入陣列地址,並返回。即返回的實際上是主調函式中的變數地址。

2 建立結構體,返回結構體變數。

將需要返回的值,寫成結構體形式,並返回結構體變數,這樣可以實現一個返回值中含有多組資料。

3 當資料規模較小時,可以採用將小規模資料合併為大規模資料的方式,進行返回。

比如,需要返回兩個char型資料時,可以通過返回一個short資料,高地位分別儲存各自的值。

4 除以上方法外

還可以不使用返回值的方式,而是通過函式引數傳值,或者全域性變數傳值等方式,將要返回的值回傳給主調函式。