函數的返回值通過return語句來執(zhí)行,即return后的變量或表達式的值,就為該函數的返回值(你可以根據需要自定義返回什么值),而返回值的類型是指該值你想要得到的類型,比如return
創(chuàng)新互聯(lián)公司長期為上1000家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為椒江企業(yè)提供專業(yè)的做網站、網站設計,椒江網站改版等技術服務。擁有十多年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
a;(a的類型,你在函數體里定義的是int
a;但根據需要,你要的是一個float型的返回值),于是,這樣定義一個函數:
float
函數名(參數列表)
{
int
a;
函數體;
……
return
a;
}
這樣,返回值a就變成了float型。
你可以這么理解,比如我們定義了一個函數fun(),如果這個函數有返回值,那么在調用程序里面(比如主函數)就可以把這個函數當成一個數使用;如果沒有返回值,那么通常他就是一個獨立的語句存在。
比如fun函數里面有個return 0;表示返回值是零,那么在調用函數里面就可以存在諸如
a=fun();b=a+fun();if(fun()=0{};……這類的語句,表示a=0;b=a+0;if(00){};等等,當然也可能是返回一個變量的值,你個指針的值是一樣的。
如果沒有return 語句,那么函數沒有返回值,調用函數里面就不能把他當做一個數值來使用,會出現(xiàn):
fun();單獨成句的語句,在fun()里面可能進行了一些操作,但不需要結果。
C語言自帶的函數通常都有返回值,計算函數返回計算結果,操作函數返回操作結果(成功返回1,失敗返回0)
①為什么需要return?
為了回答這個問題,
我打算用 模塊思維 來解釋。
②定義模塊(形參模塊)
定義函數:f(s)(a,b)
滿足公式:s=a+b
函數名:f(s)
形參: a,b(公式中的 變量 )
函數返回值:return s
③調用模塊(實參模塊)
主函數:main()表示用戶自己編寫的部分
調用函數:f(s)(1,2)
滿足公式:x=f(s)(1,2)
函數名:f(s)和定義函數一致,產生調用
實參 :1,2( 賦值 給公式的值)
求值:printf("%d\n",x),求x的值?
④值的傳遞過程
調用模塊 中調用函數x=f(s)(1,2)
將實參1和2的值賦值給
定義模塊 中的形參a和b
(實參到形參是單向傳遞,不可逆)
定義模塊計算出s=a+b=1+2=3
定義模塊 中的return s
將s的值賦值給
調用模塊 中的函數f(s)(1,2)
即x=f(s)(1,2)=s=3
~
return s的作用
就是將定義模塊中的s
賦值 給調用模塊中的調用函數
如果沒有return s
調用模塊中的調用函數將永遠沒有定值
即所求x 無定值
這一點和數學不一樣,
數學中
同一函數名的值是 通用 的,
C語言中
定義函數和調用函數的值是 隔離 的,
盡管函數名一樣
如果不賦值,調用函數永遠無定值。
返回值的意思是將函數實現(xiàn)的結果返回給調用者。
按標準來說,C的main函數是需要有返回值的。標準中main函數返回類型是int的,所以需要一個返回值。但是由于歷史原因,很多地方可以看到沒有返回值的main。
比如直接main()或者說void main() 但是這樣一般編譯器也不會認為錯誤,不過建議還是寫標準的C的main函數,最好有一個返回值,0表示正常退出。
擴展資料:
常用庫函數有:
scanf格式輸入函數
printf格式輸出函數
systemdos命令函數
sort排序
main主函數
fgets文件讀取字符串函數
fputs文件寫入字符串函數