程序中的函數(shù)應(yīng)用
人們在求解一個復(fù)雜問題時,通常采用的是逐步分解、分而治之的方法,也就是把一個復(fù)雜的大問題分解成若干個比較容易求解的小問題,然后分別求解。類似地,程序員在設(shè)計一個復(fù)雜的程序時,往往也是把整個程序劃分成若干個功能較為單一且相對獨立的子程序,然后分別予以實現(xiàn),最后再把所有的子程序像搭積木一樣裝配起來。
過程和函數(shù)是兩類不同的子程序。一個過程是參數(shù)化計算的語句序列,一般沒有返回值。函數(shù)在結(jié)構(gòu)上類似于過程,但一個函數(shù)通常有一個返回值.在C,C++等語言中,過程和函數(shù)被統(tǒng)一為函數(shù)這一種形式。
在程序中使用函數(shù)時,需要定義函數(shù)和調(diào)用函數(shù)。每種程序設(shè)計語言都會提供關(guān)于函數(shù)定義和調(diào)用的相應(yīng)規(guī)則。函數(shù)定義描述了函數(shù)做什么和怎么做,函數(shù)調(diào)用則是使用已經(jīng)定義的函數(shù)。
1.函數(shù)定義
一個函數(shù)的定義通常由兩部分構(gòu)成:函數(shù)首部和函數(shù)體。函數(shù)首部給出了一個契約說明了如何使用一個函數(shù);P數(shù)體則用語句描述了函數(shù)的具體功能和實現(xiàn)細節(jié)。函數(shù)定義的一般格式是:
返回值的類型函數(shù)名(形參表),/函數(shù)首部
{
函數(shù)體;
}
數(shù)首部說明了函數(shù)返回值的數(shù)據(jù)類型、函數(shù)的名字和函數(shù)運行時所需的參數(shù)(稱為形參)及其類型。函數(shù)所實現(xiàn)的功能在函數(shù)體部分描述。
2.函數(shù)調(diào)用
在一個函數(shù)(稱為調(diào)用函數(shù))中需要使用另一個函數(shù)(稱為被調(diào)用函數(shù))已經(jīng)實現(xiàn)的功能時,便以名字和參數(shù)進行調(diào)用,稱為函數(shù)調(diào)用。在使用一個函數(shù)時,只要知道如何調(diào)用就可以了,并不需要關(guān)心被調(diào)用函數(shù)的內(nèi)部實現(xiàn)。因此,調(diào)用函數(shù)需要給出被調(diào)用函數(shù)的名字、向被調(diào)用函數(shù)傳遞的參數(shù)(實參)以及如何處理返回值等。
函數(shù)調(diào)用的一般形式為:
函數(shù)名(實參表);
實現(xiàn)函數(shù)調(diào)用時,系統(tǒng)要作一系列的處理,包括保存現(xiàn)場、實參傳遞、控制轉(zhuǎn)人被調(diào)用函數(shù)等,調(diào)用完成后需要恢復(fù)現(xiàn)場、傳遞返回值、控制轉(zhuǎn)回調(diào)用函數(shù)。
表7-4是一個函數(shù)定義和函數(shù)調(diào)用的例子,其中,函數(shù)power的功能是求解實數(shù)x的k次方。
函數(shù)調(diào)用的含義如圖7-7所示,其中,調(diào)用函數(shù)caller在其語句“y = power(a,4);”中調(diào)用了函數(shù)power.因此,在caller的執(zhí)行過程中,執(zhí)行到該函數(shù)調(diào)用時,將實參a和4的值傳遞給形參x和k,控制流轉(zhuǎn)人函數(shù)power開始執(zhí)行,遇到return p時計算返回值,power執(zhí)行結(jié)束.此后,控制流再返回調(diào)用函數(shù)caller并將返回值傳給y,接著執(zhí)行caller中“Y=power(a,4) ;”之后的語句。
3.參數(shù)與參數(shù)傳遞
在程序中使用函數(shù)時,參數(shù)起著調(diào)用函數(shù)與被調(diào)用函數(shù)之間的信息傳遞作用。通常有兩類參數(shù):形式參數(shù)和實際參數(shù)。形式參數(shù)(Parameter,簡稱為形參)出現(xiàn)在函數(shù)定義時的函數(shù)首部,在形式上以代表著某些量的特征參數(shù)的方式出現(xiàn);實際參數(shù)(Argument,簡稱為實參)出現(xiàn)在函數(shù)調(diào)用中,它們對應(yīng)于形式參數(shù)的具體內(nèi)容。
例如,在前面關(guān)于函數(shù)power的定義中,函數(shù)首部為“double power(double x, int k)",其中,x和k就是形參。函數(shù)調(diào)用power(3. 5,4)實現(xiàn)計算3. 54 , 3.5和4則是實參.函數(shù)調(diào)用power(a, m)則實現(xiàn)計算am, a和m是實參,需將實參變量a的值傳遞給形參x,實參變量m的值傳遞給形參k。在調(diào)用時.實參a和m必須具有確定的值。
函數(shù)的實參與形參是相對應(yīng)的。實現(xiàn)函數(shù)調(diào)用時,實參要向形參傳遞值。參數(shù)傳遞指的是在函數(shù)調(diào)用時實參與形參的匹配動作。如果由實參向形參傳遞值,相應(yīng)的調(diào)用就稱為傳優(yōu)調(diào)用;如果傳遞的是實參的地址(或者通過引用傳遞),則稱為引用調(diào)用。下面以實現(xiàn)兩個整型變It交換值的函數(shù)為例,簡要說明傳值調(diào)用和引用調(diào)用方式下的參數(shù)傳遞問題,其中swapl采用的是傳值調(diào)用,swap2采用的是引用調(diào)用,它們的定義和調(diào)用如表7-5所示。
在傳值調(diào)用方式中,形參將取得實參的值。在這種方式下,形參與實參分別對應(yīng)不同的存儲單元.以函數(shù)swapl為例,在函數(shù)調(diào)用語句swapl (a, b)得到執(zhí)行之前,系統(tǒng)還沒有為形參分配存儲單元,如圖7-8(a)所示。函數(shù)調(diào)用語句執(zhí)行時,系統(tǒng)為形參x,y分配存儲單元,實參a和b的值分別傳遞給形參x和y。在函數(shù)swapl執(zhí)行時,確實將x和y的值作了交換,但此時x與a無關(guān)、y與b無關(guān),所以a和b的值并沒有得到交換,如圖7-8 (c)所示.實際卜,被調(diào)用函數(shù)執(zhí)行結(jié)束后,形參的存儲空間就被系統(tǒng)回收了。
在引用調(diào)用方式下,形參表示的是實參的存儲位置,形參可以看成是實參之存儲位置的代名詞。因此,在函數(shù)swap2中,交換x與Y的值就等同于交換a與b的值,調(diào)用結(jié)束后實現(xiàn)了對a和b值的交換處理。
4.標準庫函數(shù)
編寫程序時,并不需要也不應(yīng)當一切都從頭開始,而應(yīng)當盡可能地利用前人的成果,以提高開發(fā)的速度和質(zhì)量。為此,每種程序設(shè)計語言在發(fā)布時都包含了一些隨程序開發(fā)環(huán)境提供的函數(shù)庫,供編程人員開發(fā)程序時調(diào)用,如C語言的標準庫等。由編譯程序開發(fā)商和第三方提供的函數(shù)庫,實現(xiàn)了許多公用的或常用的功能,這些函數(shù)在準確性、高效性和可移植性方面更有保證。
存放在函數(shù)庫中的函數(shù)稱為庫函數(shù).庫函數(shù)具有明確的功能、人口參數(shù)和返回值。
函數(shù)庫以文件方式提供。例如,擴展名為lib或dll的文件通常就是某種函數(shù)庫。
建站流程
-
網(wǎng)站需求
-
網(wǎng)站策劃方案
-
頁面設(shè)計風(fēng)格
-
確認交付使用
-
資料錄入優(yōu)化
-
程序設(shè)計開發(fā)
-
后續(xù)跟蹤服務(wù)
-
聯(lián)系電話
010-60259772
熱門標簽
- 網(wǎng)站建設(shè)
- 食品網(wǎng)站建設(shè)
- 微信小程序開發(fā)
- 小程序開發(fā)
- 無錫網(wǎng)站建設(shè)
- 研究所網(wǎng)站建設(shè)
- 沈陽網(wǎng)站建設(shè)
- 廊坊網(wǎng)站建設(shè)
- 鄭州網(wǎng)站建設(shè)
- 婚紗攝影網(wǎng)站建設(shè)
- 手機端網(wǎng)站建設(shè)
- 高校網(wǎng)站制作
- 天津網(wǎng)站建設(shè)
- 教育網(wǎng)站建設(shè)
- 品牌網(wǎng)站建設(shè)
- 政府網(wǎng)站建設(shè)
- 北京網(wǎng)站建設(shè)
- 網(wǎng)站設(shè)計
- 網(wǎng)站制作
最新文章
推薦新聞
更多行業(yè)-
SEO優(yōu)化是網(wǎng)站優(yōu)化的全部嗎
程構(gòu)建血脈,細節(jié)決定成敗。Cheng building blood, ...
2012-08-04 -
福州網(wǎng)站建設(shè)教您企業(yè)建設(shè)網(wǎng)站如何選擇網(wǎng)站空間?
網(wǎng)站建設(shè)一定要選擇合適的網(wǎng)站空間,不合適的網(wǎng)站空間可能會給后續(xù)帶來很多...
2021-07-08 -
如何設(shè)計網(wǎng)站首頁吸引客戶眼球?
網(wǎng)站首頁作為客戶進入網(wǎng)站的第一眼,可以做到客戶對網(wǎng)站印象、網(wǎng)站實力產(chǎn)生...
2019-08-29 -
自由傭金制度下的網(wǎng)上交易模式
傭金是證券經(jīng)紀人向證券買賣的雙方收取的手續(xù)費。目前世界各國的有關(guān)證券法...
2014-09-10 -
北京企業(yè)網(wǎng)站的功能如何才能體現(xiàn)出來
網(wǎng)站的功能需要通過其他網(wǎng)絡(luò)營銷方式來體現(xiàn)。 企業(yè)網(wǎng)站的網(wǎng)絡(luò)營銷價值體...
2020-06-16 -
企業(yè)網(wǎng)站建設(shè)首布如何布局效果好
網(wǎng)站建設(shè)和規(guī)劃非常重要。網(wǎng)站首頁是最重要的。品牌官網(wǎng)注重客戶體驗和視覺...
2021-10-15
預(yù)約專業(yè)咨詢顧問溝通!
免責(zé)聲明
非常感謝您訪問我們的網(wǎng)站。在您使用本網(wǎng)站之前,請您仔細閱讀本聲明的所有條款。
1、本站部分內(nèi)容來源自網(wǎng)絡(luò),涉及到的部分文章和圖片版權(quán)屬于原作者,本站轉(zhuǎn)載僅供大家學(xué)習(xí)和交流,切勿用于任何商業(yè)活動。
2、本站不承擔用戶因使用這些資源對自己和他人造成任何形式的損失或傷害。
3、本聲明未涉及的問題參見國家有關(guān)法律法規(guī),當本聲明與國家法律法規(guī)沖突時,以國家法律法規(guī)為準。
4、如果侵害了您的合法權(quán)益,請您及時與我們,我們會在第一時間刪除相關(guān)內(nèi)容!
聯(lián)系方式:010-60259772
電子郵件:394588593@qq.com