在c中任何函數(shù)都有返回值,這個(gè)是定下的,主函數(shù)也有返回值
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)青山湖,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
返回值分幾個(gè)方面,逐個(gè)說一下
主函數(shù)的返回值,這個(gè)一般用戶用不到,程序執(zhí)行的時(shí)候,系統(tǒng)會(huì)根據(jù)這個(gè)返回值來判斷程序的運(yùn)行結(jié)果
不管定義神馬類型的返回值,在tc中默認(rèn)為void型(這個(gè)可以省略),可以根據(jù)需要自己定義都可以。
vc中好像必須寫,要不然編譯系統(tǒng)提示出錯(cuò)
子函數(shù)的返回值,分兩類
void,也就是在不需要子函數(shù)返回?cái)?shù)值的時(shí)候用到。注意的是不需要不代表沒有返回值。調(diào)用成功返回1,不成功返回0,我好像在哪里看到過這個(gè)說法,我不確定
非void型,這個(gè)返回值類型根據(jù)定義來返回
值得注意的是,在子函數(shù)中,只要執(zhí)行return一定結(jié)束子函數(shù),不管后面有多少代碼
一些系統(tǒng)自帶的函數(shù),如printf,scanf等,最好了解他的返回值
簡(jiǎn)單的說,函數(shù)就是一個(gè)算法,有不有返回值是跟這個(gè)函數(shù)做什么的有關(guān)系。
一般情況下,求和這類的就要返回值,比如
int
add(int
a,int
b)
{
return
a+b;//這就返回a+b的和,用函數(shù)的時(shí)候,你只要傳a,b的值就得了
}
用的時(shí)候這樣:
int
s=add(100,200);
//就把100+200也就是300的值賦給s了
這種情況就是相當(dāng)于你去A地做買東西,你肯定得拿東西回來。你拿回來的東西也就是返回值
-------------------------------------------
還有些不用返回值的,比如,輸出,或者給有地址的變量賦值等
這些函數(shù)前面就可以用void
表示無返回值,當(dāng)然你也可以返回你想返回的。比如說成功或者失敗返回true
or
false.也可以隨意返回一個(gè)int型的
1或者0
比如:
void
pri(int
i)
{
printf("%d",i);//這個(gè)就是打印一個(gè)整型的i出來
}
這種就像你去A地不干什么,就去那兒吼兩句,也就不用拿什么回來了。
還有種給有地址的變量賦值。那就相當(dāng)于你去a地寄了一封信,也不用什么什么回來。
啊,打得手累,我就這樣理解了。給是清楚點(diǎn)了,呵呵
函數(shù)返回值的意思是將函數(shù)實(shí)現(xiàn)的結(jié)果返回給調(diào)用者。
按標(biāo)準(zhǔn)來說,C的main函數(shù)是需要有返回值的。標(biāo)準(zhǔn)中main函數(shù)返回類型是int的,所以需要一個(gè)返回值。但是由于歷史原因,很多地方可以看到?jīng)]有返回值的main。
比如直接main()或者說void main() 但是這樣一般編譯器也不會(huì)認(rèn)為錯(cuò)誤,不過建議還是寫標(biāo)準(zhǔn)的C的main函數(shù),最好有一個(gè)返回值,0表示正常退出。
擴(kuò)展資料:
需要說明的是:
1、一個(gè)C語言源程序可以由一個(gè)或多個(gè)源文件組成。
2、每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成。
3、一個(gè)源程序不論由多少個(gè)文件組成,都有一個(gè)且只能有一個(gè)main函數(shù),即主函數(shù)。是整個(gè)程序的入口。
4、源程序中可以有預(yù)處理命令(包括include 命令,ifdef、ifndef命令、define命令),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。
5、每一個(gè)說明,每一個(gè)語句都必須以分號(hào)結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號(hào)“}”之后不能加分號(hào)。(結(jié)構(gòu)體、聯(lián)合體、枚舉型的聲明的“}”后要加“ ;”。)
6、標(biāo)識(shí)符,關(guān)鍵字之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
參考資料來源:百度百科-函數(shù)
返回值的意思是將函數(shù)實(shí)現(xiàn)的結(jié)果返回給調(diào)用者。
按標(biāo)準(zhǔn)來說,C的main函數(shù)是需要有返回值的。標(biāo)準(zhǔn)中main函數(shù)返回類型是int的,所以需要一個(gè)返回值。但是由于歷史原因,很多地方可以看到?jīng)]有返回值的main。
比如直接main()或者說void main() 但是這樣一般編譯器也不會(huì)認(rèn)為錯(cuò)誤,不過建議還是寫標(biāo)準(zhǔn)的C的main函數(shù),最好有一個(gè)返回值,0表示正常退出。
擴(kuò)展資料:
常用庫函數(shù)有:
scanf格式輸入函數(shù)
printf格式輸出函數(shù)
systemdos命令函數(shù)
sort排序
main主函數(shù)
fgets文件讀取字符串函數(shù)
fputs文件寫入字符串函數(shù)
你可以這么理解,比如我們定義了一個(gè)函數(shù)fun(),如果這個(gè)函數(shù)有返回值,那么在調(diào)用程序里面(比如主函數(shù))就可以把這個(gè)函數(shù)當(dāng)成一個(gè)數(shù)使用;如果沒有返回值,那么通常他就是一個(gè)獨(dú)立的語句存在。
比如fun函數(shù)里面有個(gè)return 0;表示返回值是零,那么在調(diào)用函數(shù)里面就可以存在諸如
a=fun();b=a+fun();if(fun()=0{};……這類的語句,表示a=0;b=a+0;if(00){};等等,當(dāng)然也可能是返回一個(gè)變量的值,你個(gè)指針的值是一樣的。
如果沒有return 語句,那么函數(shù)沒有返回值,調(diào)用函數(shù)里面就不能把他當(dāng)做一個(gè)數(shù)值來使用,會(huì)出現(xiàn):
fun();單獨(dú)成句的語句,在fun()里面可能進(jìn)行了一些操作,但不需要結(jié)果。
C語言自帶的函數(shù)通常都有返回值,計(jì)算函數(shù)返回計(jì)算結(jié)果,操作函數(shù)返回操作結(jié)果(成功返回1,失敗返回0)
return后接一個(gè)值。
在調(diào)用這個(gè)函數(shù)的函數(shù)里面,調(diào)用它的時(shí)候希望獲得一個(gè)值,如果不希望獲得這個(gè)值的時(shí)候,用void聲明就好。如果需要,比如說需要得到一個(gè)整形值
就聲明
int func()
在調(diào)用它的比如main里面
func()的作用就可以相當(dāng)于一個(gè)int型常數(shù)
比如外面定義了
int max(int a,int b)
{
return ab?a:b;
}
主函數(shù)里面是
main()
{
int A;
A=max(1,2);
}
這時(shí)候就是通過max計(jì)算 12 則return 一個(gè)1 ,12 則return一個(gè)2。很明顯12 所以這里max(1,2)就會(huì)return 一個(gè) 2
這時(shí)候主函數(shù)里的max(1,2)就相當(dāng)于一個(gè)常數(shù) 2
A=max(1,2)的作用就相當(dāng)于A=2
這個(gè)意思。