欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

C語言中的函數為什么只能有一個返回值輸出?怎么實現多個值輸出?

錢多多2年前14瀏覽0評論

C語言的函數還真的只能有一個值返回,因為大部分情況下,我們不需要返回多個值,C語言規范中為了盡量避免程序設計的難度,就沒有考慮函數的多個值的返回情況。即使有返回多個值的需求,也可以通過其它方式實現。我總結一下,大概有四種方式

一.傳參數

通過指針或引用的方式可以在函數中改變傳入參數的值,例如在做兩個數的交換時,如果用指針方式,可以像下面這樣寫

如果采用引用的方式,稍微改一下就好了,如下

這樣a和b其實可以看成是要返回的兩個值,這種通過指針和引用的方式一般是用得最多的多值返回方式。

二.返回元組

當然我們可以以數組的形式值返回,即使類型不一樣也沒有關系,比如要返回三種類型的值,都將它們存入到一個string類型的數組里面,將每一個類型的值當成字符串存入,在使用時解析并轉化一下類型就好了。

其實在C++11中就有tuple可以滿足這個需求了,tuple中可以放不同類型的元素,并且在使用時也有對應方法獲取變量值。例如

返回tuple的類型,然后按下標獲取對應的字段值即可。

三.返回字符串

這種形式是將返回的多個字段作為字符串通過一些分隔符拼接起來作為整體返回,跟返回字符串數組差不多,只不過一個返回字符數組的形式要多一個拼接和分割操作,稍微麻煩一點,不過,在Java中這種方式我用得比較多。

四.返回結構體

即直接定義一個結構體,這個結構體包含了所有要返回的值字段,類型可以不一樣,但這樣多定義了一個結構體,導致程序看起來比較冗余。

在C/C++語言中,雖然我們不能像Python那樣直接返回多個值,但通過上面的四種方式實現多個值的返回,也基本上能滿足我們的需要。