c語言chap6(函數(shù)與宏定義)

c語言chap6(函數(shù)與宏定義)

ID:39963236

大?。?58.50 KB

頁數(shù):40頁

時間:2019-07-16

c語言chap6(函數(shù)與宏定義)_第1頁
c語言chap6(函數(shù)與宏定義)_第2頁
c語言chap6(函數(shù)與宏定義)_第3頁
c語言chap6(函數(shù)與宏定義)_第4頁
c語言chap6(函數(shù)與宏定義)_第5頁
資源描述:

《c語言chap6(函數(shù)與宏定義)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、6.1函數(shù)概念第6章函數(shù)與宏定義在進(jìn)行程序設(shè)計時,程序員總是將復(fù)雜的問題進(jìn)行分解,化整為零。編寫一段小程序就能解決一個小問題,然后將這些小程序拼裝起來就能解決非常大而復(fù)雜的問題。在C中,這些小程序統(tǒng)稱為函數(shù)。在C中,由系統(tǒng)提供的函數(shù)放在函數(shù)庫中供用戶選用,以減少重復(fù)編寫程序模塊的工作量。?所有函數(shù)都是平行的,相互獨(dú)立不能嵌套,但可以相互調(diào)用(main函數(shù)不能被其它函數(shù)調(diào)用)。?C函數(shù)分標(biāo)準(zhǔn)函數(shù)(庫函數(shù))和自定義函數(shù)。?C函數(shù)本身分有參函數(shù)和無參函數(shù)。9/19/202116.2函數(shù)定義的一般形式1.無參函數(shù)的定義形式類型標(biāo)識符

2、函數(shù)名(){說明部分;語句;}無參函數(shù)一般不需要返回函數(shù)值,可以省略類型標(biāo)識符。2.有參函數(shù)的定義形式類型標(biāo)識符函數(shù)名(形式參數(shù)表)形式參數(shù)說明;{說明部分;語句;}無分號!無分號!9/19/202123.“空函數(shù)”例:intmax(x,y)intx,y;/?形式參數(shù)說明?/{intz;/?函數(shù)體中的說明部分?/z=x>y?x:y;return(z);}類型說明符函數(shù)名(){}“空函數(shù)”什么操作也不做。其作用是在此處留一函數(shù)的位置,以便將來擴(kuò)充功能之用。函數(shù)名也在將來換取實(shí)際的函數(shù)名。這兩行可以寫成一行:intmax(int

3、x,inty)9/19/202136.3函數(shù)參數(shù)和函數(shù)的值1.形式參數(shù)和實(shí)際參數(shù)例6.1從鍵盤輸入兩個數(shù),輸出其中較大的一個。main(){inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);/?a,b為實(shí)際參數(shù)?/printf(“Maxis%d”,c);}max(x,y)/?x,y為形式參數(shù)?/intx,y;{intz;z=x>y?x:y;return(z);}9/19/20214?形參變量在被調(diào)用前不占用存儲單元;在被調(diào)用結(jié)束后,形參所占存儲單元亦被釋放。?實(shí)參可以是常量、變量或表達(dá)式。?必

4、須指定形參類型,且必須與實(shí)參的類型一致。?實(shí)參對形參的數(shù)據(jù)傳遞是“值傳遞”。即單向傳遞,不能逆?zhèn)鳌?可以在形參表中直接說明形參類型。如:intmax(intx,inty);floatfun(inta[10],intn);注意:9/19/20215?函數(shù)的返回值是通過return語句獲得的。當(dāng)不需返回函數(shù)值時,可省去return語句。?return語句的后面可以有括號,也可以沒有。如:returnz;?return(z);?return語句的后面可以是變量,也可以是表達(dá)式。如:return(x>y?x:y);?return語句

5、返回值的類型應(yīng)與該函數(shù)的類型一致。否則以函數(shù)類型為準(zhǔn)。2.函數(shù)的返回值9/19/20216?若函數(shù)中沒有return語句,則該函數(shù)被調(diào)用后也會帶回不確定的值。如:main(){inta,b,c;a=printstar();b=print_message();c=printstar();printf(“%d,%d,%d”,a,b,c);}輸出的a,b,c的值將是隨機(jī)值。?為了明確表示不需要函數(shù)返回值,可以用“void”定義函數(shù)為“無類型”。此時,不得使用a=printstar()之類的語句。凡不需要返回值的函數(shù),一般均定義

6、為“void”類型。9/19/202171.函數(shù)調(diào)用的一般形式函數(shù)名(實(shí)參表);說明:?對于無參函數(shù),盡管沒有“實(shí)參表”,但也不得省略括號。?“實(shí)參表”中的參數(shù)之間用逗號分開。?實(shí)參與形參之間的個數(shù)及類型必須一一對應(yīng)。?對實(shí)參求值的順序是自左至右還是自右至左,視具體的系統(tǒng)而定。TurboC和MSC是按自右至左的順序求值。6.4函數(shù)的調(diào)用9/19/20218例6.2main(){inti=2,p;p=fun(i,++i);printf(“%d”,p);}intfun(a,b)inta,b;{intc;if(a>b)c=1;el

7、seif(a==b)c=0;elsec=–1;return(c);}輸出結(jié)果:0注意:這里是按自右至左求值的,相當(dāng)于fun(3,3)。若按自左至右求值,則相當(dāng)于fun(2,3),則輸出為-1。9/19/20219調(diào)用函數(shù),可以有如下三種方式:?將函數(shù)調(diào)用作為一個語句。如:printf(“MSCpragramming”);gets(s);?將被調(diào)用的函數(shù)寫在表達(dá)式中。如:c=2?max(a,b);注意:被調(diào)用函數(shù)max必須有確定的返回值。?將函數(shù)調(diào)用作為一個函數(shù)的實(shí)參。如:m=max(max(a,b),c);3.對被調(diào)用函數(shù)的

8、說明在一個函數(shù)中調(diào)用另一個函數(shù)時:?如果被調(diào)函數(shù)為庫函數(shù),則應(yīng)在文件開頭用“#include”命令聲明相應(yīng)的“頭文件”。如:#include“stdio.h”#include“math.h”2.函數(shù)調(diào)用的方式9/19/202110類型標(biāo)識符被調(diào)函數(shù)名();如:floatadd();?如果被

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。