c語言函數(shù)只能最多有一個返回值。我們以一個數(shù)據(jù)運(yùn)算函數(shù)作為實(shí)例講解:
成都創(chuàng)新互聯(lián)公司是專業(yè)的高郵網(wǎng)站建設(shè)公司,高郵接單;提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行高郵網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
使用指針返回額外數(shù)據(jù):定義指針參數(shù),將結(jié)果通過指針返回。
如果有很多類型相同的數(shù)據(jù),如何返回?cái)?shù)組呢?c語言也只能借助指針返回?cái)?shù)組。
使用結(jié)構(gòu)體返回:如果返回多個數(shù)據(jù),并且各個數(shù)據(jù)類型都不相同。那么只能通過結(jié)構(gòu)體返回。
使用結(jié)構(gòu)體指針返回:直接返回結(jié)構(gòu)體,程序執(zhí)行效率會受到影響。因?yàn)樾枰獜?fù)制結(jié)構(gòu)體數(shù)據(jù),如果結(jié)構(gòu)體數(shù)據(jù)比較大,復(fù)制操作會損耗程序性能。
通過使用結(jié)構(gòu)體指針,我們也可以返回多個數(shù)據(jù)結(jié)果。
在c++中,除了使用指針,通常使用引用返回多個數(shù)據(jù)。與指針相比,使用引用時不用擔(dān)心函數(shù)調(diào)用者傳入不符合預(yù)期的指針。
返回值的意思是將函數(shù)實(shí)現(xiàn)的結(jié)果返回給調(diào)用者。
按標(biāo)準(zhǔn)來說,C的main函數(shù)是需要有返回值的。標(biāo)準(zhǔn)中main函數(shù)返回類型是int的,所以需要一個返回值。但是由于歷史原因,很多地方可以看到?jīng)]有返回值的main。
比如直接main()或者說void main() 但是這樣一般編譯器也不會認(rèn)為錯誤,不過建議還是寫標(biāo)準(zhǔn)的C的main函數(shù),最好有一個返回值,0表示正常退出。
擴(kuò)展資料:
常用庫函數(shù)有:
scanf格式輸入函數(shù)
printf格式輸出函數(shù)
systemdos命令函數(shù)
sort排序
main主函數(shù)
fgets文件讀取字符串函數(shù)
fputs文件寫入字符串函數(shù)
函數(shù)的值(或稱函數(shù)返回值)是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的值,可以通過return語句返回。
return語句的一般形式為:
return 表達(dá)式;
或者:
return (表達(dá)式);
例如:
return max;
return a+b;
return (100+200);
函數(shù)中可以有多個 return 語句,但每次調(diào)用只能有一個return 語句被執(zhí)行,所以只有一個返回值。
一旦遇到 return 語句,不管后面有沒有代碼,函數(shù)立即運(yùn)行結(jié)束,將值返回。例如:
int func(){
int a=100, b=200, c;
return a+b;
return a*b;
return b/a;
}
返回值始終 a+b 的值,也就是300。
沒有返回值的函數(shù)為空類型,用void進(jìn)行說明。例如:
void func(){
printf("Hello world!\n");
}
一旦函數(shù)的返回值類型被定義為 void,就不能再接收它的值了。例如,下面的語句是錯誤的:
int a = func();
為了使程序有良好的可讀性并減少出錯, 凡不要求返回值的函數(shù)都應(yīng)定義為空類型。
子函數(shù)的返回值,main主函數(shù)也是有返回值的,但是一般用不到都忽略掉了,一般來說的返回值就是子函數(shù)的返回值。當(dāng)需要一個函數(shù)去處理數(shù)據(jù)時,如求平方,這時候求平方后的值可以有兩種方法表達(dá)
1、以值的形式返回給你,即return x,這樣就可以利用這個結(jié)果了,此時函數(shù)名前當(dāng)然要加返回的數(shù)據(jù)類型了
2、當(dāng)不需要對這一結(jié)果進(jìn)一步處理時,直接printf,這樣可以直接在終端上顯示結(jié)果了,這時就沒必要去加了,直接VOID
擴(kuò)展資料
void:聲明函數(shù)無返回值或無參數(shù),聲明無類型指針,顯示丟棄運(yùn)算結(jié)果。(C89標(biāo)準(zhǔn)新增)
如果一個變量聲明時在前面使用 * 號,表明這是個指針型變量。換句話說,該變量存儲一個地址,而 * 則是取內(nèi)容操作符,意思是取這個內(nèi)存地址里存儲的內(nèi)容。指針是 C 語言區(qū)別于其他同時代高級語言的主要特征之一。
指針不僅可以是變量的地址,還可以是數(shù)組、數(shù)組元素、函數(shù)的地址。通過指針作為形式參數(shù)可以在函數(shù)的調(diào)用過程得到一個以上的返回值,不同于return(z)這樣的僅能得到一個返回值。
參考資料:c語言 - 百度百科
當(dāng)一個函數(shù)不是void型的時候就必須有一個返回值(main)函數(shù)除外,這個返回值就看你這個函數(shù)本身是什么型的。返回值經(jīng)常用來標(biāo)志一些東西,比如一個游戲程序中的函數(shù)int
win()用來判斷輸贏,輸返回0,贏返回1,然后主調(diào)函數(shù)可以根據(jù)它的返回值做相應(yīng)的處理,比如這樣的句子
if(win())
speed++;(進(jìn)入下一關(guān))。