



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、編程高手C 語言(十)函數(shù)的定義和調(diào)用本節(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)心它己開發(fā)函數(shù)庫。的實(shí)現(xiàn)細(xì)節(jié)。當(dāng)然程序員也可以自說明一點(diǎn),函數(shù)這一節(jié)很重要,可以說一個(gè)程序的優(yōu)劣在函數(shù)上
2、。如果函數(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ù)類型、或者是某個(gè)數(shù)據(jù)類型的指針、指向結(jié)構(gòu)的指針、指向數(shù)組的指針。指針概念到以后再介紹。函數(shù)名在程序中必須是唯一的,它也遵循標(biāo)識符命名
3、規(guī)則。參數(shù)表可以沒有也可以有多個(gè),在函數(shù)調(diào)用的時(shí)候,實(shí)際參數(shù)將被拷貝到這些變量中。語句體包括局部變量的和可執(zhí)行代碼。面其實(shí)已經(jīng)接觸過函數(shù)了,如 abs(),sqrt(),們只要會使用它即可。這一節(jié)主要講解無參數(shù)無返回值的函數(shù)調(diào)用。并不知道它的是什么,我二、函數(shù)的和調(diào)用為了調(diào)用一個(gè)函數(shù),必須事先該函數(shù)的返回值類型和參數(shù)類型,這和使用變量的道理是一樣的(有一種可以例外,就是函數(shù)的定義在調(diào)用之前,下面再講述)。看一個(gè)簡單的例子:void a(); /*函數(shù)*/main()a(); /*函數(shù)調(diào)用*/void a() /*函數(shù)定義*/num; scanf(%d,&num); prf(%dn,num);在
4、 main()的前面了一個(gè)函數(shù),函數(shù)類型是 void 型,函數(shù)名為 a,無參數(shù)。然后在main()函數(shù)里面調(diào)用這個(gè)函數(shù),該函數(shù)的作用很簡單,就是輸入一個(gè)整數(shù)然后再顯示它。在調(diào)用函數(shù)之前main()num; scanf(%d,&num); prf(%dn,num);了該函數(shù)其實(shí)它和下面這個(gè)程序的功能是一樣的:可以看出,實(shí)際上就是把 a()函數(shù)里面的所有內(nèi)容直接搬到 main()函數(shù)里面(注意,這句。)話不是前面已經(jīng)說了,當(dāng)定義在調(diào)用之前時(shí),可以不個(gè)也是等價(jià)的:void a()num; scanf(%d,&num); prf(%dn,num);函數(shù)。所以上面的程序和下面這main() a();因?yàn)?/p>
5、定義在調(diào)用之前,所以可以不函數(shù),這是因?yàn)榫幾g器在編譯的時(shí)候,已經(jīng)發(fā)現(xiàn)a 是一個(gè)函數(shù)名,是無返回值類型無參數(shù)的函數(shù)了。那么很多人也許就會想,那何必還要這一步呢?只要把所有的函數(shù)的定義都放面不就可以了嗎?這種想法是不可取的,一個(gè)好的程序員總是在程序的開頭聲明所有用到的函數(shù)和變量,這是為了以后好檢查。前面說了,在調(diào)用之前,必須先函數(shù),所以下面的做法也是正確的(但在這里我個(gè)人并不提倡)。main()void a();a();void a()num; scanf(%d,&num); prf(%dn,num);一般來說,比較好的程序書寫順序是,先義的函數(shù)。既然 main()函數(shù)可以調(diào)用別的函數(shù),那么呢?是可以的??聪旅娴睦樱汉瘮?shù),然后寫主函數(shù),然后再寫那些自定自己定義的函數(shù)能不能再調(diào)用其他函數(shù)void a();void b();main() a();void a() b();void b()num; scanf(%d,&num); prf(%dn,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)向。某些人可能就不明白了,看上面
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年北京銷售經(jīng)理勞動合同履行與違約責(zé)任約定
- 短視頻代運(yùn)營合同范本
- 銀川房屋租賃合同范本
- 圖書約稿著作權(quán)合同范本
- 購物中心裝修保修協(xié)議
- 工廠改造抵押貸款協(xié)議范文
- 瑜伽館裝修包清工合同模板
- 2025年度半年租房合同附帶租賃物品損壞賠償條款
- 2024年度吉林省三支一扶之三支一扶行測考前沖刺試卷A卷含答案
- 公共衛(wèi)生健康促進(jìn)行動計(jì)劃
- 網(wǎng)絡(luò)傳播概論(彭蘭第5版) 課件全套 第1-8章 網(wǎng)絡(luò)媒介的演變-網(wǎng)絡(luò)傳播中的“數(shù)字鴻溝”
- 4.1.1 有理數(shù)指數(shù)冪-參考課件
- 雷達(dá)簡介講解課件
- 人教版六年級數(shù)學(xué)下冊全冊大單元教學(xué)任務(wù)單
- JJF(新) 112-2023 微量殘?zhí)繙y定儀校準(zhǔn)規(guī)范
- 超載限位器調(diào)試報(bào)告
- 2024銷售人員年終工作總結(jié)2篇
- 2024年牛排行業(yè)分析報(bào)告及未來發(fā)展趨勢
- 智能微電網(wǎng)應(yīng)用技術(shù)
- 車間維修現(xiàn)場安全操作規(guī)程范文
- 【全套】醫(yī)院智能化系統(tǒng)報(bào)價(jià)清單
評論
0/150
提交評論