C語言函數(shù)的定義和調(diào)用.doc

C語言函數(shù)的定義和調(diào)用.doc

ID:50824178

大?。?9.95 KB

頁數(shù):4頁

時(shí)間:2020-03-15

C語言函數(shù)的定義和調(diào)用.doc_第1頁
C語言函數(shù)的定義和調(diào)用.doc_第2頁
C語言函數(shù)的定義和調(diào)用.doc_第3頁
C語言函數(shù)的定義和調(diào)用.doc_第4頁
資源描述:

《C語言函數(shù)的定義和調(diào)用.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、C語言函數(shù)的定義和調(diào)用點(diǎn)擊:發(fā)布日期:2007-4-1914:15:00進(jìn)入論壇本節(jié)介紹C程序的基本單元--函數(shù)。函數(shù)中包含了程序的可執(zhí)行代碼。每個(gè)C程序的入口和出口都位于函數(shù)main()之中。main()函數(shù)可以調(diào)用其他函數(shù),這些函數(shù)執(zhí)行完畢后程序的控制又返回到main()函數(shù)中,main()函數(shù)不能被別的函數(shù)所調(diào)用。通常我們把這些被調(diào)用的函數(shù)稱為下層(lower-level)函數(shù)。函數(shù)調(diào)用發(fā)生時(shí),立即執(zhí)行被調(diào)用的函數(shù),而調(diào)用者則進(jìn)入等待狀態(tài),直到被調(diào)用函數(shù)執(zhí)行完畢。函數(shù)可以有參數(shù)和返回值。程序員一般把函數(shù)當(dāng)作“黑箱”處理,并不關(guān)心它內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。當(dāng)然

2、程序員也可以自己開發(fā)函數(shù)庫。說明一點(diǎn),函數(shù)這一節(jié)很重要,可以說一個(gè)程序的優(yōu)劣集中體現(xiàn)在函數(shù)上。如果函數(shù)使用的恰當(dāng),可以讓程序看起來有條理,容易看懂。如果函數(shù)使用的亂七八糟,或者是沒有使用函數(shù),程序就會顯得很亂,不僅讓別人無法查看,就連自己也容易暈頭轉(zhuǎn)向。可以這樣說,如果超過100行的程序中沒有使用函數(shù),那么這個(gè)程序一定很羅嗦(有些絕對,但也是事實(shí))。一、函數(shù)的定義一個(gè)函數(shù)包括函數(shù)頭和語句體兩部分。函數(shù)頭由下列三不分組成:函數(shù)返回值類型函數(shù)名參數(shù)表一個(gè)完整的函數(shù)應(yīng)該是這樣的:函數(shù)返回值類型函數(shù)名(參數(shù)表){語句體;}函數(shù)返回值類型可以是前面說到的某個(gè)數(shù)據(jù)類型

3、、或者是某個(gè)數(shù)據(jù)類型的指針、指向結(jié)構(gòu)的指針、指向數(shù)組的指針。指針概念到以后再介紹。函數(shù)名在程序中必須是唯一的,它也遵循標(biāo)識符命名規(guī)則。參數(shù)表可以沒有也可以有多個(gè),在函數(shù)調(diào)用的時(shí)候,實(shí)際參數(shù)將被拷貝到這些變量中。語句體包括局部變量的聲明和可執(zhí)行代碼。我們在前面其實(shí)已經(jīng)接觸過函數(shù)了,如abs(),sqrt(),我們并不知道它的內(nèi)部是什么,我們只要會使用它即可。這一節(jié)主要講解無參數(shù)無返回值的函數(shù)調(diào)用。二、函數(shù)的聲明和調(diào)用為了調(diào)用一個(gè)函數(shù),必須事先聲明該函數(shù)的返回值類型和參數(shù)類型,這和使用變量的道理是一樣的(有一種可以例外,就是函數(shù)的定義在調(diào)用之前,下面再講述)。

4、看一個(gè)簡單的例子:voida();/*函數(shù)聲明*/main(){a();/*函數(shù)調(diào)用*/}voida()/*函數(shù)定義*/{intnum;scanf("%d",&num);printf("%d",num);}在main()的前面聲明了一個(gè)函數(shù),函數(shù)類型是void型,函數(shù)名為a,無參數(shù)。然后在main()函數(shù)里面調(diào)用這個(gè)函數(shù),該函數(shù)的作用很簡單,就是輸入一個(gè)整數(shù)然后再顯示它。在調(diào)用函數(shù)之前聲明了該函數(shù)其實(shí)它和下面這個(gè)程序的功能是一樣的:main(){intnum;scanf("%d",&num);printf("%d",num);}可以看出,實(shí)際上就是

5、把a(bǔ)()函數(shù)里面的所有內(nèi)容直接搬到main()函數(shù)里面(注意,這句話不是絕對的。)我們前面已經(jīng)說了,當(dāng)定義在調(diào)用之前時(shí),可以不聲明函數(shù)。所以上面的程序和下面這個(gè)也是等價(jià)的:voida(){intnum;scanf("%d",&num);printf("%d",num);}main(){a();}因?yàn)槎x在調(diào)用之前,所以可以不聲明函數(shù),這是因?yàn)榫幾g器在編譯的時(shí)候,已經(jīng)發(fā)現(xiàn)a是一個(gè)函數(shù)名,是無返回值類型無參數(shù)的函數(shù)了。那么很多人也許就會想,那我們何必還要聲明這一步呢?我們只要把所有的函數(shù)的定義都放在前面不就可以了嗎?這種想法是不可取的,一個(gè)好的程序員總是在

6、程序的開頭聲明所有用到的函數(shù)和變量,這是為了以后好檢查。前面說了,在調(diào)用之前,必須先聲明函數(shù),所以下面的做法也是正確的(但在這里我個(gè)人并不提倡)。main(){voida();a();}voida(){intnum;scanf("%d",&num);printf("%d",num);}一般來說,比較好的程序書寫順序是,先聲明函數(shù),然后寫主函數(shù),然后再寫那些自定義的函數(shù)。既然main()函數(shù)可以調(diào)用別的函數(shù),那么我們自己定義的函數(shù)能不能再調(diào)用其他函數(shù)呢?答案是可以的??聪旅娴睦樱簐oida();voidb();main(){a();}voida(){b

7、();}voidb(){intnum;scanf("%d",&num);printf("%d",num);}main()函數(shù)先調(diào)用a()函數(shù),而a()函數(shù)又調(diào)用b()函數(shù)。在C語言里,對調(diào)用函數(shù)的層數(shù)沒有嚴(yán)格的限制,我們可以往下調(diào)用100層、1000層,但是在這里我們并不提倡調(diào)用的層數(shù)太多(除非是遞歸),因?yàn)閷訑?shù)太多,對以后的檢查有一些干擾,函數(shù)調(diào)過來調(diào)過去,容易讓自己都暈頭轉(zhuǎn)向。某些人可能就不明白了,看上面的例子,好象使用函數(shù)后,程序變的更長了,更不讓人理解。當(dāng)然,我舉的這個(gè)例子的確沒有必要用函數(shù)來實(shí)現(xiàn),但是對于某些實(shí)際問題,如果不使用函數(shù),會讓程序

8、變的很亂,這涉及到參數(shù)問題,我們下一節(jié)再說。

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

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

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