①為什么需要return?
創新互聯公司主要從事網站制作、做網站、網頁設計、企業做網站、公司建網站等業務。立足成都服務歷城,10年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18980820575
為了回答這個問題,
我打算用 模塊思維 來解釋。
②定義模塊(形參模塊)
定義函數: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語言中
定義函數和調用函數的值是 隔離 的,
盡管函數名一樣
如果不賦值,調用函數永遠無定值。
C語言指向函數的指針承載的信息比較復雜,組織起來要素要寫全。根據指向函數的指針的書寫語法,下面的代碼就是一個返回函數指針的函數:
int (*f(void))(int){//f是函數,沒有參數,返回指向一個函數的指針;這個被指向的函數有一個int型形參,且返回一個int值
return fun;//fun是個函數名,必須具備一個int形參、返回int值的要求
}
以下代碼可以驗證上述函數的正確性:
//#include?"stdafx.h"http://If?the?vc++6.0,?with?this?line.
#include?"stdio.h"
int?fun(int?n){
printf("abcdef\n");
return?n;
}
int?(*f(void))(int){
return?fun;
}
int?main(void){
printf("%d\n",f()(100));//調用函數f,通過f返回的指針用100調用函數fun
return?0;
}
輸出是:
abcdef
100
C語言,有返回值的處理,可以分兩種情況,1,返回一個值,可以用:
返回類型 函數名([參數列表])
{
return (返回值);
}
多個返回值,可以返回一個自定義結構體,
返回結構體 函靈敏名([參數列表])
{
return (結構體名);
}
也可用指針的形式,直接操作,此時,接收返回值變量的地址,可以以指針的形式,傳遞給函數),進行操作,具體方法和實例.
文章標題:c語言帶返回值的函數聲明 c語言有返回值函數
網站路徑:http://vcdvsql.cn/article34/dopgdpe.html
成都網站建設公司_創新互聯,為您提供網站建設、外貿建站、定制網站、品牌網站設計、小程序開發、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯