在C語言中,函數只能返回一個值,要返回兩個值,可以改換思路,通過其它方式做到。
1 建立數組,返回指針。
在要返回的兩個值類型相同時,可以用創建數組的方式,將要返回的值存在數組中,並返回數組首地址,這樣就可以實現返回兩個值的效果。
需要注意的是,要返回數組首地址,那麼返回的值不可以是局部變量,有如下幾種是可以的:
a) 使用靜態局部變量存儲,並返回地址;
b) 使用全局變量存儲,返回地址;
c) 函數中動態分配內存,並返回申請到的地址,此種方法需要注意,在使用後需要釋放;
d) 在參數中傳入數組地址,並返回。即返回的實際上是主調函數中的變量地址。
2 建立結構體,返回結構體變量。
將需要返回的值,寫成結構體形式,並返回結構體變量,這樣可以實現一個返回值中含有多組數據。
3 當數據規模較小時,可以採用將小規模數據合併爲大規模數據的方式,進行返回。
比如,需要返回兩個char型數據時,可以通過返回一個short數據,高地位分別存儲各自的值。
4 除以上方法外
還可以不使用返回值的方式,而是通過函數參數傳值,或者全局變量傳值等方式,將要返回的值回傳給主調函數。