十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
函數(shù)是不能直接返回兩個值的,不過可以通過數(shù)組,列表,鏈表等方式,返回多個值。
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為巴南等服務建站,巴南等地企業(yè),進行企業(yè)商務咨詢服務。為巴南企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。
例如 int a[] f(),這個shu函數(shù)返回值就是一個整型的數(shù)組,如果你要返回兩個值,可以定義數(shù)組長度為2,a[0]保存第一個值,a[1]保存第二個值。
int fun(int a, int b, int *c, int *d);
參數(shù)是a,b,返回值是c,d,c和d用指針傳進去。
c,d可以是其他參數(shù)類型,也可以是數(shù)據(jù)結構。
函數(shù)返回值可以用于返回error。
擴展資料:
如果沒有返回值類型名為"void", 整數(shù)類型int 類型返回值為整數(shù)類型int,以此類推……
類型名有:void int long float int* long* float* ……
C++中函數(shù)的調(diào)用:函數(shù)必須聲明后才可以被調(diào)用。調(diào)用格式為:函數(shù)名(實參)
調(diào)用時函數(shù)名后的小括號中的實參必須和聲明函數(shù)時的函數(shù)括號中的形參個數(shù)相同。
有返回值的函數(shù)可以進行計算,也可以做為右值進行賦值。
參考資料來源:百度百科-函數(shù)
樓下真牛逼,恐怕是怪獸大學畢業(yè)的吧。
推薦做法
把函數(shù)聲明寫成這樣int func(int* ret1,int* ret2)
這樣就可以用ret1和ret2來返回信息了,事實上,scanf函數(shù)就是這樣的一個例子。
方案二呢,可以將多個返回值打成一個結構體,然后作處理,其實這種方式不怎么好,因為結構里的兩個變量很可能沒什么聯(lián)系,而你卻把他們打包在一起。其實,等你學得好了,你會發(fā)現(xiàn)其實還有很多方法都可以達到目的,因為c語言就是如此強大而靈活。最后,警告一下不要用 return a,b之類的語句。因為a,b會被解釋為一個逗號表達式,它最終的值就是b的值,所以return a,b;就等同于return b;
方法一:設置全局變量,這樣在形參中改變?nèi)肿兞?,在實參中也會有效。所以可以在形參中改變多個全局變量的值,那么在實參中就相當于返回多個值。
方法二:如果用數(shù)組名作為形參,那么改變數(shù)組內(nèi)容,比如排序,或者進行加減運算,回到實參時依然是有效的。這樣也會返回一組值。
方法三:可以利用指針變量,這個原理和方法二是一樣的,因為數(shù)組名本身就是數(shù)組首元素的地址。就不多說了。 用結構體封裝不同類型數(shù)據(jù),或者用數(shù)組表示同類型數(shù)據(jù),然后返回結構體指針或者數(shù)組名,本質都是用指針來返回多個參數(shù)
方法四:如果學過C++,可以引用參數(shù)
首先比喻下函數(shù)是什么吧?
函數(shù)簡單的說就是一個黑箱子似的制造機器,你給他原料(輸入?yún)?shù))它給你制造出產(chǎn)品(函數(shù)返回的結果)。
所以函數(shù)的返回值一般就是你想要的結果。當然有些函數(shù)沒有返回值,比如輸出一句話的函數(shù),這函數(shù)就沒有返回值。c++用void型表示。但是求兩個數(shù)的最大值函數(shù)int
max(int
a,
int
b)的返回值就可以是你求的最大的值。
int
max(int
a,
intb)
{
if(ab)
{
return
a;
}
else
{
return
b;
}
}
其中return返回的值就是函數(shù)的返回值。