所謂返回值,就是人們想要知道函數(shù)或者程序所得到 的結(jié)果而設(shè)計(jì)的函數(shù)或者程序結(jié)束時(shí)給出一個(gè)值。比如:我們編寫一個(gè)加法函數(shù),肯定想知道加完過后的結(jié)果是什么,那么我們就指定這個(gè)結(jié)果為該加法程序的返回值。
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供獲嘉企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為獲嘉眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
關(guān)于返回值的返回:
1、函數(shù)調(diào)用語句本身代表其返回值:例如:fun(a);那么“fun(a)”就是這個(gè)返回值。
2、可以把返回值存到對(duì)應(yīng)類型的變量之中。例如:int a=fun(b);
3、返回值是多種多樣的,可以是各種各樣的,int short char double 等等,還可以是指針或者結(jié)構(gòu)體。在數(shù)據(jù)結(jié)構(gòu)的二叉樹部分,某一個(gè)函數(shù)的返回值是一個(gè)帶有兩個(gè)指針的結(jié)構(gòu)體。
在C語言中,函數(shù)只能返回一個(gè)值,要返回兩個(gè)值,可以改換思路,通過其它方式做到。
1 建立數(shù)組,返回指針。
在要返回的兩個(gè)值類型相同時(shí),可以用創(chuàng)建數(shù)組的方式,將要返回的值存在數(shù)組中,并返回?cái)?shù)組首地址,這樣就可以實(shí)現(xiàn)返回兩個(gè)值的效果。
需要注意的是,要返回?cái)?shù)組首地址,那么返回的值不可以是局部變量,有如下幾種是可以的:
a) 使用靜態(tài)局部變量存儲(chǔ),并返回地址;
b) 使用全局變量存儲(chǔ),返回地址;
c) 函數(shù)中動(dòng)態(tài)分配內(nèi)存,并返回申請(qǐng)到的地址,此種方法需要注意,在使用后需要釋放;
d) 在參數(shù)中傳入數(shù)組地址,并返回。即返回的實(shí)際上是主調(diào)函數(shù)中的變量地址。
2 建立結(jié)構(gòu)體,返回結(jié)構(gòu)體變量。
將需要返回的值,寫成結(jié)構(gòu)體形式,并返回結(jié)構(gòu)體變量,這樣可以實(shí)現(xiàn)一個(gè)返回值中含有多組數(shù)據(jù)。
3 當(dāng)數(shù)據(jù)規(guī)模較小時(shí),可以采用將小規(guī)模數(shù)據(jù)合并為大規(guī)模數(shù)據(jù)的方式,進(jìn)行返回。
比如,需要返回兩個(gè)char型數(shù)據(jù)時(shí),可以通過返回一個(gè)short數(shù)據(jù),高地位分別存儲(chǔ)各自的值。
除以上方法外,還可以不使用返回值的方式,而是通過函數(shù)參數(shù)傳值,或者全局變量傳值等方式,將要返回的值回傳給主調(diào)函數(shù)。
c語言函數(shù)只能最多有一個(gè)返回值。我們以一個(gè)數(shù)據(jù)運(yùn)算函數(shù)作為實(shí)例講解:
使用指針返回額外數(shù)據(jù):定義指針參數(shù),將結(jié)果通過指針返回。
如果有很多類型相同的數(shù)據(jù),如何返回?cái)?shù)組呢?c語言也只能借助指針返回?cái)?shù)組。
使用結(jié)構(gòu)體返回:如果返回多個(gè)數(shù)據(jù),并且各個(gè)數(shù)據(jù)類型都不相同。那么只能通過結(jié)構(gòu)體返回。
使用結(jié)構(gòu)體指針返回:直接返回結(jié)構(gòu)體,程序執(zhí)行效率會(huì)受到影響。因?yàn)樾枰獜?fù)制結(jié)構(gòu)體數(shù)據(jù),如果結(jié)構(gòu)體數(shù)據(jù)比較大,復(fù)制操作會(huì)損耗程序性能。
通過使用結(jié)構(gòu)體指針,我們也可以返回多個(gè)數(shù)據(jù)結(jié)果。
在c++中,除了使用指針,通常使用引用返回多個(gè)數(shù)據(jù)。與指針相比,使用引用時(shí)不用擔(dān)心函數(shù)調(diào)用者傳入不符合預(yù)期的指針。
return后接一個(gè)值。\r\n在調(diào)用這個(gè)函數(shù)的函數(shù)里面,調(diào)用它的時(shí)候希望獲得一個(gè)值,如果不希望獲得這個(gè)值的時(shí)候,用void聲明就好。如果需要,比如說需要得到一個(gè)整形值\r\n就聲明\r\nint func()\r\n在調(diào)用它的比如main里面\r\nfunc()的作用就可以相當(dāng)于一個(gè)int型常數(shù)\r\n比如外面定義了\r\nint max(int a,int b)\r\n{\r\nreturn ab?a:b;\r\n}\r\n主函數(shù)里面是\r\nmain()\r\n{\r\nint A;\r\nA=max(1,2);\r\n}\r\n這時(shí)候就是通過max計(jì)算 12 則return 一個(gè)1 ,1
回答于?2022-11-16