所謂函數(shù)返回值是一個函數(shù)在運算結束以后向調用它的母函數(shù)或者系統(tǒng)反饋一個值,這個值可以是各種變量類型.
創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站制作、網(wǎng)站設計、外貿網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務拜泉,10余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792
舉個簡單的例子:
int add(int a,int b)
{
return (a+b);
}
int main()
{
int res;
res=add(3,4);
printf("%d",res);
return 0;
}
在主函數(shù)main中調用子函數(shù)add,并傳遞參數(shù)3和4過去,add經(jīng)過運算后得到值7,通過return語句將得到的值返回給調用它的main函數(shù)供其使用,而在main中,返回值被用于給res賦值。
函數(shù)返回值就可以理解為解決一個問題以后得到的結論,把這個結論交給別人,就像寫在書上成為一個定理,來讓別人使用。
嗯,我認為也不能調用,
在func這個函數(shù)里,one被優(yōu)先識別為一個整形的變量,而不是一個函數(shù),
#include stdio.h
void one(int a,int b);
int func(int one,int c);
int main()
{
func(1,2);
return 0;
}
void one(int a,int b)
{
printf("%d %d",a,b);
}
int func(int one,int c)
{
printf("%d %d",one,c);
one(3,4);
}
在這段代碼里可證實我的說法,該代碼不能運行,錯誤信息為:"在func函數(shù)中one不能作為一個函數(shù)"
關鍵1:static 變量生命期同整個程序。所以每次調用后,函數(shù)f里的新a值將保留到下次調用時使用。
關鍵2:a++ 是后綴++,表達式里用原值a, 出了表達式才自增1,n+=a++; 要分解成:
n=n+a; a=a+1;
程序運行:
s=f(3); 函數(shù)調用 [a=1;n=n+a=4,a++=2;] s=4。
s=s+f(3)=4+f(3); 函數(shù)調用[a=2;n=3+2=5;a++=3] ; s=4+5=9;
輸出 9
C語言函數(shù)的運用及調用
1.當程序變得越來越復雜的時候,我們可以使用函數(shù)進行完成任務,并不再是進行編寫。
2.C語言本身就具有豐富的庫函數(shù):
目錄路徑函數(shù)
字符類型分類函數(shù)
內存管理函數(shù)
數(shù)學函數(shù)
進程控制函數(shù)
日期和時間函數(shù)
接口函數(shù)
輸入輸出函數(shù)
圖形函數(shù)
診斷函數(shù)
3.每一種函數(shù)都有它的作用,在需要使用時,直接進行調用就可以了。
4.函數(shù)分為有參和無參函數(shù)。
參數(shù)可以分為形參與實參。
形參在函數(shù)內,而實參在函數(shù)外。
形參直接使用,而實參在函數(shù)外調用。
5. 函數(shù)的值只能通過return語句返回主調函數(shù)。
6.在函數(shù)內有局部變量和全局變量兩種,局部變量在函數(shù)內使用,而全局變量可在函數(shù)中使用。
7.從變量作用域可以劃分全局,而在變量的生存期可以分為靜態(tài)與動態(tài)存儲方式。
固定的存儲空間與運行時分配的存儲空間方式還是有所不同的。
auto聲明自動變量,自動變量用關鍵字作存儲類別的聲明,在函數(shù)調用結束將會自動釋放這些存儲空間。
static可以聲明局部變量,在函數(shù)調用結束之后不消失而保留原值。
8.register可以聲明局部變量,在函數(shù)調用時為了提高效率,可以寄存在CPU的寄存器中。
extern可以聲明局部變量,擴展程序文件中的作用域。
C語言中,函數(shù)調用的一般形式為:
函數(shù)名(實際參數(shù)表)
對無參函數(shù)調用時則無實際參數(shù)表。實際參數(shù)表中的參數(shù)可以是常數(shù)、變量或其它構造類型數(shù)據(jù)及表達式。各實參之間用逗號分隔。
#includestdio.h
int?fun(int?x,?int?y);?//?函數(shù)聲明,如果函數(shù)寫在被調用處之前,可以不用聲明
void?main()
{
int?a=1,?b=2,?c;
c?=?fun(a,?b);?//?函數(shù)的調用,調用自定義函數(shù)fun,其中a,b為實際參數(shù),傳遞給被調用函數(shù)的輸入值
}
//?自定義函數(shù)fun
int?fun(int?x,?int?y)??//?函數(shù)首部
{??//?{}中的語言為函數(shù)體
return?xy???x?:?y;??//?返回x和y中較大的一個數(shù)
}
擴展資料
C語言中不允許作嵌套的函數(shù)定義。因此各函數(shù)之間是平行的,不存在上一級函數(shù)和下一級函數(shù)的問題。但是C語言允許在一個函數(shù)的定義中出現(xiàn)對另一個函數(shù)的調用。
這樣就出現(xiàn)了函數(shù)的嵌套調用。即在被調函數(shù)中又調用其它函數(shù)。這與其它語言的子程序嵌套的情形是類似的。其關系可表示如圖。
圖表示了兩層嵌套的情形。其執(zhí)行過程是:執(zhí)行main函數(shù)中調用a函數(shù)的語句時,即轉去執(zhí)行a函數(shù),在a函數(shù)中調用b 函數(shù)時,又轉去執(zhí)行b函數(shù),b函數(shù)執(zhí)行完畢返回a函數(shù)的斷點繼續(xù)執(zhí)行,a函數(shù)執(zhí)行完畢返回main函數(shù)的斷點繼續(xù)執(zhí)行。
參考資料:函數(shù)調用_百度百科
請問C語言函數(shù)的調用規(guī)則是什么,例如主函數(shù)main、 函數(shù)A 、函數(shù)B,這3者的順序能否打亂,
可以打亂,依個人習慣。
如果 A函數(shù)放最前,能否直接調用B函數(shù)?還是只能后面的函數(shù)調用前面的函數(shù),還是說只要在A函數(shù)中聲明B函數(shù)就能夠調用后面的B函數(shù)。?
A調B,或B調A都可以,如果B在A后,B可直接調用A,否則,先在B前聲明一下A再調用A。
main函數(shù)的有沒有固定的位置,例如要放最前面?或最后面?
沒有要求,一般單獨一個C文件放main函數(shù)。
我需要程序調用這一部分的 語法描述圖,因為規(guī)則不是固定,所以畫起來有點難度,有沒人能提供 程序調用的語法描述圖 就是類似 void ---- ident----(----)----{----語句…… 這樣的圖。加分加分!!
不明白,寫兩個簡單函數(shù)實驗一下就知道了,這樣印象會深刻點不容易忘。