全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C第七章 函數(shù)_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C第七章 函數(shù)_第2頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C第七章 函數(shù)_第3頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C第七章 函數(shù)_第4頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)C第七章 函數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)c 第七章第七章 2010年年10月月- 2011年年3月月 第七章第七章 7.1 7.1 庫(kù)函數(shù)庫(kù)函數(shù) 7.2 7.2 函數(shù)的定義和返回值函數(shù)的定義和返回值 7.3 7.3 函數(shù)的調(diào)用函數(shù)的調(diào)用 7.4 7.4 函數(shù)的說(shuō)明函數(shù)的說(shuō)明 7.5 7.5 調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù)調(diào)用函數(shù)和被調(diào)用函數(shù)之間的數(shù)據(jù) 傳遞傳遞 7.6 7.6 程序舉例程序舉例 由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用。由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用。 同一個(gè)函數(shù)可以被一個(gè)或多個(gè)函數(shù)調(diào)用任意多次。同一個(gè)函數(shù)可以被一個(gè)或多個(gè)函數(shù)調(diào)用任意多次。 一個(gè)較大的程序

2、可分為 若干個(gè)程序模塊程序模塊,每一 個(gè)模塊用來(lái)實(shí)現(xiàn)一個(gè)特 定的功能。在高級(jí)語(yǔ)言 中用子程序子程序?qū)崿F(xiàn)模塊的 功能。子程序由函數(shù)來(lái) 完成。一個(gè)程序可由 一個(gè)主函數(shù)和若干個(gè)其 他函數(shù)構(gòu)成。 函數(shù)間的調(diào)用關(guān)系函數(shù)間的調(diào)用關(guān)系 例例 # include void main() void printstar(); /*對(duì)對(duì)printstar函數(shù)聲明函數(shù)聲明*/ void print_message(); /*對(duì)對(duì)print_message函數(shù)聲明函數(shù)聲明*/ printstar(); *調(diào)用調(diào)用printstar函數(shù)函數(shù)* print_message(); /*調(diào)用調(diào)用print_message函數(shù)函

3、數(shù)*/ printstar(); *調(diào)用調(diào)用printstar函數(shù)函數(shù)*/ void printstar() *定義定義printstar函數(shù)函數(shù)* printf(* * * * * * * * * * * * * * * *n); void print_message() *定義定義print_message函數(shù)函數(shù)* printf(how do you do!n); 運(yùn)行情況如下:運(yùn)行情況如下: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * how do you do!how do you do! * * *

4、 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * (1 1)一個(gè)程序由一個(gè)或多個(gè)程序模塊組成, 每一個(gè)程序模塊作為一個(gè)源程序文件。對(duì)較 大的程序,一般不希望把所有內(nèi)容全放在一 個(gè)文件中,而是將他們分別放在若干個(gè)源文 件中,再由若干源程序文件組成一個(gè)c程序。 這樣便于分別編寫、分別編譯,提高調(diào)試效 率。一個(gè)源程序文件可以為多個(gè)c程序公用。 (2 2) 一個(gè)源程序文件由一個(gè)或多個(gè)函數(shù)以及 其他有關(guān)內(nèi)容(如命令行、數(shù)據(jù)定義等)組成 。一個(gè)源程序文件是一個(gè)編譯單位,在程序編 譯時(shí)是以源程序文件為單位進(jìn)行編譯的,而不 是以函數(shù)為單位進(jìn)行

5、編譯的。 (3 3)程序的執(zhí)行是從函數(shù)開始的 ,如是在函數(shù)中調(diào)用其他函數(shù),在調(diào) 用后流程返回到函數(shù),在函 數(shù)中結(jié)束整個(gè)程序的運(yùn)行。 (4 4) 所有函數(shù)都是平行的,即在定義函數(shù)時(shí) 是分別進(jìn)行的,是互相獨(dú)立的。一個(gè)函數(shù)并不 從屬于另一函數(shù),即函數(shù)不能嵌套定義。函數(shù) 間可以互相調(diào)用,但不能調(diào)用函數(shù)。 函數(shù)是系統(tǒng)調(diào)用的。 (5 5)從用戶使用的角度看,函數(shù)有兩種: 標(biāo)準(zhǔn)函數(shù)標(biāo)準(zhǔn)函數(shù),即庫(kù)函數(shù)。這是由系統(tǒng)提供的 ,用戶不必自己定義這些函數(shù),可以直接使 用它們。應(yīng)該說(shuō)明,不同的c系統(tǒng)提供的庫(kù)函 數(shù)的數(shù)量和功能會(huì)有一些不同,當(dāng)然許多基 本的函數(shù)是共同的。 用戶自己定義的函數(shù)用戶自己定義的函數(shù)。用以解決用戶

6、的專 門需要。 (6 6) 從函數(shù)的形式看,函數(shù)分兩類: 無(wú) 參 函 數(shù)無(wú) 參 函 數(shù) 。 如 例 中 的 p r i n t s t a r 和 print_message就是無(wú)參函數(shù)。在調(diào)用無(wú)參函數(shù) 時(shí),主調(diào)函數(shù)不向被調(diào)用函數(shù)傳遞數(shù)據(jù)。無(wú)參 函數(shù)一般用來(lái)執(zhí)行指定的一組操作。例如,例 程序中的printstar函數(shù)。 有參函數(shù)有參函數(shù)。在調(diào)用函數(shù)時(shí),主調(diào)函數(shù)在調(diào)用 被調(diào)用函數(shù)時(shí),通過(guò)參數(shù)向被調(diào)用函數(shù)傳遞數(shù) 據(jù),一般情況下,執(zhí)行被調(diào)用函數(shù)時(shí)會(huì)得到一 個(gè)函數(shù)值,供主調(diào)函數(shù)使用。 特別強(qiáng)調(diào): 在一個(gè)函數(shù)的函數(shù)體內(nèi),不能再定義另一個(gè)函數(shù), 即不能嵌套定義。但是函數(shù)之間允許相互調(diào)用,也允 許嵌套調(diào)用。

7、習(xí)慣上把調(diào)用者稱為主調(diào)函數(shù)主調(diào)函數(shù)。函數(shù)還 可以自己調(diào)用自己,稱為遞歸調(diào)用遞歸調(diào)用。 main 函數(shù)是主函數(shù)主函數(shù),它可以調(diào)用其它函數(shù),而不 允許被其它函數(shù)調(diào)用。因此,程序的執(zhí)行總是從 main函數(shù)開始,完成對(duì)其它函數(shù)的調(diào)用后再返回到 main函數(shù),最后由main函數(shù)結(jié)束整個(gè)程序。一個(gè)源 程序必須有,也只能有一個(gè)主函數(shù)main。 c語(yǔ)言提供了豐富的庫(kù)函數(shù),這些函數(shù)包括了常用 的數(shù)學(xué)函數(shù),如求正弦值的sin函數(shù),求平方根值的 sqrt函數(shù);包括了對(duì)字符和字符串進(jìn)行處理的函數(shù), 如isspace函數(shù),getchar( )函數(shù);包括進(jìn)行輸入輸出 處理的各種函數(shù)。詳見(jiàn)本書附錄詳見(jiàn)本書附錄8 8 1.調(diào)

8、用c語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)時(shí)要求的include命令行 例如,調(diào)用數(shù)學(xué)庫(kù)函數(shù)時(shí),要求程序在調(diào)用數(shù)學(xué) 庫(kù)函數(shù)前包含以下的include命令行: #include “math.h” 2. 標(biāo)準(zhǔn)庫(kù)函數(shù)的調(diào)用 對(duì)庫(kù)函數(shù)的一般調(diào)用形式為: 函數(shù)名(參數(shù)表) 在在c c語(yǔ)言中,庫(kù)函數(shù)的調(diào)用可以兩種形式出現(xiàn)。語(yǔ)言中,庫(kù)函數(shù)的調(diào)用可以兩種形式出現(xiàn)。 (1 1)出現(xiàn)在表達(dá)式中出現(xiàn)在表達(dá)式中。 例如求例如求y=xy=x2.5 2.5+1.3, +1.3,可以通過(guò)以下語(yǔ)句調(diào)用可以通過(guò)以下語(yǔ)句調(diào)用powpow函數(shù)來(lái)求得:函數(shù)來(lái)求得: y=pow(x,2.5)+1.3y=pow(x,2.5)+1.3 在這里,函數(shù)的調(diào)用出現(xiàn)在賦

9、值號(hào)右邊的表達(dá)式中。在這里,函數(shù)的調(diào)用出現(xiàn)在賦值號(hào)右邊的表達(dá)式中。 又如:又如: for( printf(“:”);scanffor( printf(“:”);scanf(“%d,(“%d,(printf(printf(“:”) (“:”) ) ) 在此,函數(shù)在此,函數(shù)printfprintf和和scanfscanf都作為表達(dá)式而出現(xiàn)在都作為表達(dá)式而出現(xiàn)在forfor語(yǔ)句后語(yǔ)句后 的一對(duì)圓括號(hào)中。的一對(duì)圓括號(hào)中。 (2)作為獨(dú)立語(yǔ)句完成某種操作作為獨(dú)立語(yǔ)句完成某種操作。 例如以下調(diào)用:例如以下調(diào)用: printfprintf(“(“* * * * * * *n”);n”); 在在printfp

10、rintf函數(shù)調(diào)用之后加一個(gè)分號(hào),這就構(gòu)成了一條獨(dú)立的函數(shù)調(diào)用之后加一個(gè)分號(hào),這就構(gòu)成了一條獨(dú)立的 語(yǔ)句。語(yǔ)句。 7.2 7.2 函數(shù)的定義和返回值函數(shù)的定義和返回值 定義定義無(wú)參函數(shù)無(wú)參函數(shù)的一般形式為的一般形式為: 類型標(biāo)識(shí)符類型標(biāo)識(shí)符函數(shù)名函數(shù)名()() 聲明部分聲明部分 語(yǔ)句部分語(yǔ)句部分 在定義函數(shù)時(shí)要 用“類型標(biāo)識(shí)符” 指定函數(shù)值的類 型,即函數(shù)帶回 來(lái)的值的類型。 前面例中的 printstar和 print_message函 數(shù)為void類型, 表示不需要帶回 函數(shù)值。 我們可以改寫一個(gè)函數(shù)定義: void hello() printf (hello,world n); 這里,只

11、把main改為hello作為函數(shù)名,其余不變。hello函數(shù)是 一個(gè)無(wú)參函數(shù),當(dāng)被其它函數(shù)調(diào)用時(shí),輸出hello world字符串。 定義定義有參函數(shù)有參函數(shù)的一般形式為的一般形式為: 類型標(biāo)識(shí)符類型標(biāo)識(shí)符函數(shù)名函數(shù)名(形式參數(shù)表列)(形式參數(shù)表列) 聲明部分聲明部分 語(yǔ)句部分語(yǔ)句部分 例如:例如: (int ,int ) ;/ *函數(shù)體中的聲明部分* ?; (); 例如,定義一個(gè)函數(shù),用于求兩個(gè)數(shù)中的大數(shù),可寫為: int max(int a, int b) if (ab) return a; else return b; 第一行說(shuō)明max函數(shù)是一個(gè)整型函數(shù),其返回的函數(shù)值是一個(gè) 整數(shù)。形參

12、為a,b,均為整型量。a,b的具體值是由主調(diào)函數(shù)在調(diào) 用時(shí)傳送過(guò)來(lái)的。在中的函數(shù)體內(nèi),除形參外沒(méi)有使用其它變 量,因此只有語(yǔ)句而沒(méi)有聲明部分。在max函數(shù)體中的return語(yǔ) 句是把a(bǔ)(或b)的值作為函數(shù)的值返回給主調(diào)函數(shù)。有返回值函數(shù) 中至少應(yīng)有一個(gè)return語(yǔ)句。 int max(int a,int b) if(ab)return a; else return b; main() int max(int a,int b); int x,y,z; printf(input two numbers:n); scanf(%d%d, z=max(x,y); printf(maxmum=%d,z)

13、; 定義定義空函數(shù)空函數(shù)的一般形式為的一般形式為: 類型標(biāo)識(shí)符類型標(biāo)識(shí)符函數(shù)名函數(shù)名()() 例如:例如: ()() 調(diào)用此函數(shù)時(shí),什么 工作也不做,沒(méi)有任 何實(shí)際作用。在主調(diào) 函數(shù)中寫上“ ();”表明 “這里要調(diào)用一個(gè)函 數(shù)”,而現(xiàn)在這個(gè)函 數(shù)沒(méi)有起作用,等以 后擴(kuò)充函數(shù)功能時(shí)補(bǔ) 充上。 在前面提到的有參函數(shù)中,在定義函數(shù)時(shí)函 數(shù)名后面括弧中的變量名稱為“形式參數(shù)” (簡(jiǎn)稱“形參形參”),在主調(diào)函數(shù)中調(diào)用一個(gè) 函數(shù)時(shí),函數(shù)名后面括弧中的參數(shù)(可以是一 個(gè)表達(dá)式)稱為“實(shí)際參數(shù)”(簡(jiǎn)稱“實(shí)參實(shí)參” )。return后面的括弧中的值()作為函數(shù)帶 回的值(稱函數(shù)返回值函數(shù)返回值)。 #incl

14、ude stdio#include .h void void ()() int max(intint max(int ,intint ) ); / /* * 對(duì)函數(shù)的聲明對(duì)函數(shù)的聲明 * */ / int int ,;,; scanfscanf(,);(,); (,);(,); printfprintf( ,);,); 調(diào)用函數(shù)時(shí)的數(shù)據(jù)傳遞調(diào)用函數(shù)時(shí)的數(shù)據(jù)傳遞 int max(intint max(int ,intint ) )* *定義有參函數(shù)定義有參函數(shù)max max * * intint ; ?; returnreturn();(); 運(yùn)行情況如下: , 通過(guò)函數(shù)調(diào)用,使兩個(gè)函數(shù)中的數(shù)據(jù)

15、發(fā)生聯(lián)系通過(guò)函數(shù)調(diào)用,使兩個(gè)函數(shù)中的數(shù)據(jù)發(fā)生聯(lián)系 關(guān)于形參與實(shí)參的說(shuō)明:關(guān)于形參與實(shí)參的說(shuō)明: (1) 在定義函數(shù)中指定的形參,在未出現(xiàn)函數(shù) 調(diào)用時(shí),它們并不占內(nèi)存中的存儲(chǔ)單元。只 有在發(fā)生函數(shù)調(diào)用時(shí),函數(shù)中的形參 才被分配內(nèi)存單元。在調(diào)用結(jié)束后,形參所 占的內(nèi)存單元也被釋放。 (2) 實(shí)參可以是常量、變量或表達(dá)式,如: (,); 但要求它們有確定的值。在調(diào)用時(shí)將實(shí)參的 值賦給形參。 (3) 在被定義的函數(shù)中,必須指定形參的類 型(上例程序中的 “(,(, ););” )。 (4) 實(shí)參與形參的類型應(yīng)相同或賦值兼容。 上例中實(shí)參和形參都是整型。如果實(shí)參為整 型而形參x為實(shí)型,或者相反,則按第2

16、章介 紹的不同類型數(shù)值的賦值規(guī)則進(jìn)行轉(zhuǎn)換。 例如實(shí)參值a為3.5,而形參x為整型,則將實(shí) 數(shù)3.5轉(zhuǎn)換成整數(shù)3,然后送到形參b。字符型 與整型可以互相通用。 (5) 在語(yǔ)言中,實(shí)參向?qū)π螀⒌臄?shù)據(jù)傳遞 是“值傳遞”,單向傳遞,只由實(shí)參傳給形 參,而不能由形參傳回來(lái)給實(shí)參。在內(nèi)存中, 實(shí)參單元與形參單元是不同的單元。 在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí) 參對(duì)應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單 元被釋放,實(shí)參單元仍保留并維持原值。因此, 在執(zhí)行一個(gè)被調(diào)用函數(shù)時(shí),形參的值如果發(fā)生 改變,并不會(huì)改變主調(diào)函數(shù)的實(shí)參的值。例如, 若在執(zhí)行函數(shù)過(guò)程中和的值變?yōu)楹?,而和仍為和。 通常,希望通過(guò)函數(shù)調(diào)用

17、使主調(diào)函數(shù)能得到一個(gè)確 定的值,這就是函數(shù)的返回值函數(shù)的返回值。例如,前例中, (,)的值是,(,)的值 是5。賦值語(yǔ)句將這個(gè)函數(shù)值賦給變量。 關(guān)于函數(shù)返回值的一些說(shuō)明:關(guān)于函數(shù)返回值的一些說(shuō)明: (1)(1)函數(shù)的返回值是通過(guò)函數(shù)中的函數(shù)的返回值是通過(guò)函數(shù)中的returnreturn語(yǔ)句獲語(yǔ)句獲 得的。得的。 return語(yǔ)句將被調(diào)用函數(shù)中的一個(gè)確定值帶回主調(diào)函 數(shù)中去。 如果需要從被調(diào)用函數(shù)帶回一個(gè)函數(shù)值供主調(diào)函數(shù)使 用,被調(diào)用函數(shù)中必須包含return語(yǔ)句。如果不需要從 被調(diào)用函數(shù)帶回函數(shù)值可以不要return語(yǔ)句。 一個(gè)函數(shù)中可以有一個(gè)以上的return語(yǔ)句,執(zhí)行到哪一 個(gè)return

18、語(yǔ)句,哪一個(gè)語(yǔ)句起作用。return語(yǔ)句后面的括 弧也可以不要, 如如: “: “return ;” ;” 等價(jià)于等價(jià)于 “return ();();” return后面的值可以是一個(gè)表達(dá)式。 例如,前面例中的函數(shù)可以改寫成: (int ,int ) (? );); (2)(2) 函數(shù)的返回值應(yīng)當(dāng)屬于某一個(gè)確定的類型,函數(shù)的返回值應(yīng)當(dāng)屬于某一個(gè)確定的類型, 在定義函數(shù)時(shí)指定函數(shù)返回值的類型在定義函數(shù)時(shí)指定函數(shù)返回值的類型。 例如例如: :下面是下面是3 3個(gè)函數(shù)的首行:個(gè)函數(shù)的首行: int max(float ,float ) /* 函數(shù)值為整型 */ char letter(char c1

19、,char c2) /* 函數(shù)值為字符型 */ double min(int ,int ) /* 函數(shù)值為雙精度型 */ 在語(yǔ)言中,凡不加類型說(shuō)明的函數(shù),自動(dòng)按整型 處理。前例中的函數(shù)首行的函數(shù)類型int可以省 寫,用turbo c 2.0編譯程序時(shí)能通過(guò),但用turbo c 3.0編譯程序時(shí)不能通過(guò),因?yàn)閏+要求所有函數(shù) 都必須指定函數(shù)類型。因此,建議在定義時(shí)對(duì)所有函數(shù) 都指定函數(shù)類型。 (3 3)在定義函數(shù)時(shí)指定的函數(shù)類型一般應(yīng)該和在定義函數(shù)時(shí)指定的函數(shù)類型一般應(yīng)該和 returnreturn語(yǔ)句中的表達(dá)式類型一致。語(yǔ)句中的表達(dá)式類型一致。 如果函數(shù)值的類型和return語(yǔ)句中表達(dá)式的值不

20、一致, 則以函數(shù)類型為準(zhǔn)。對(duì)數(shù)值型數(shù)據(jù),可以自動(dòng)進(jìn)行類 型轉(zhuǎn)換。即函數(shù)類型決定返回值的類型。 (4 4)對(duì)于不帶回值的函數(shù),應(yīng)當(dāng)用對(duì)于不帶回值的函數(shù),應(yīng)當(dāng)用“void”void”定定 義函數(shù)為義函數(shù)為“無(wú)類型無(wú)類型”(或稱(或稱“空類型空類型”)。這)。這 樣,系統(tǒng)就保證不使函數(shù)帶回任何值,即禁止樣,系統(tǒng)就保證不使函數(shù)帶回任何值,即禁止 在調(diào)用函數(shù)中使用被調(diào)用函數(shù)的返回值。此時(shí)在調(diào)用函數(shù)中使用被調(diào)用函數(shù)的返回值。此時(shí) 在函數(shù)體中不得出現(xiàn)在函數(shù)體中不得出現(xiàn)returnreturn語(yǔ)句。語(yǔ)句。 返回值類型與函數(shù)類型不同返回值類型與函數(shù)類型不同 # include void main()() int

21、 (float ,float ); float ,;,; int ; scanf(,);(,); (,);(,); printf( ,);,); int max(float ,float ) float ; /* z為實(shí)型變量為實(shí)型變量 */ ? ; return();(); 運(yùn)行情況如下: , max is 函數(shù)調(diào)用的一般形式為函數(shù)調(diào)用的一般形式為: : 函數(shù)名函數(shù)名(實(shí)參表列)(實(shí)參表列) 如果是調(diào)用無(wú)參函數(shù),則“實(shí)參表列” 可以沒(méi)有,但括弧不能省略。 如果實(shí)參表列包含多個(gè)實(shí)參,則各參數(shù) 間用逗號(hào)隔開。實(shí)參與形參的個(gè)數(shù)應(yīng)相 等,類型應(yīng)匹配。實(shí)參與形參按順序?qū)?應(yīng),一一傳遞數(shù)據(jù)。 如果實(shí)參表

22、列包括多個(gè)實(shí)參,對(duì)實(shí)參求值 的順序并不是確定的,有的系統(tǒng)按自左至 右順序求實(shí)參的值,有的系統(tǒng)則按自右至 左順序。許多版本是按自右而左的順序 求值,例如tubro +。 例例: : 實(shí)參求值的順序?qū)崊⑶笾档捻樞?#include void main() int f(int a,int b); /* 函數(shù)聲明函數(shù)聲明 */ int i=2,p; p=f(i,+i); /* 函數(shù)調(diào)用函數(shù)調(diào)用 */ printf(%dn,p); int f(int a,int b) /* 函數(shù)定義函數(shù)定義 */ int c; if(ab) c=1; else if(a=b) c=0; else c=-1; retur

23、n(c); 對(duì)于函數(shù)調(diào)用對(duì)于函數(shù)調(diào)用 int i=2,p; p=f(i,+i); 如果按自左至右順序求實(shí)如果按自左至右順序求實(shí) 參的值,則函數(shù)調(diào)用相當(dāng)參的值,則函數(shù)調(diào)用相當(dāng) 于(,)于(,) 如果按自右至左順序求實(shí)如果按自右至左順序求實(shí) 參的值,則函數(shù)調(diào)用相當(dāng)參的值,則函數(shù)調(diào)用相當(dāng) 于(于(3,),) 函數(shù)語(yǔ)句函數(shù)語(yǔ)句 把函數(shù)調(diào)用作為一個(gè)語(yǔ)句。如例中的printstar(),這時(shí) 不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。 函數(shù)表達(dá)式函數(shù)表達(dá)式 函數(shù)出現(xiàn)在一個(gè)表達(dá)式中,這種表達(dá)式稱為函數(shù)表達(dá)函數(shù)表達(dá) 式式。這時(shí)要求函數(shù)帶回一個(gè)確定的值以參加表達(dá)式的 運(yùn)算。例如:* *(,);(,); 函數(shù)參

24、數(shù)函數(shù)參數(shù) 函數(shù)調(diào)用作為一個(gè)函數(shù)的實(shí)參。例如: m = max (a , max ( b , c ) ) ; 其中max ( b , c )是一次函數(shù)調(diào)用,它的值作為max另 一次調(diào)用的實(shí)參。m的值是a、b、c三者中的最大者。 又如: printf (%d, max (a,b);也是把max ( a , b ) 作為printf函數(shù)的一個(gè)參數(shù)。 函數(shù)調(diào)用作為函數(shù)的參數(shù),實(shí)質(zhì)上也是函數(shù)表達(dá) 式形式調(diào)用的一種,因?yàn)楹瘮?shù)的參數(shù)本來(lái)就要求是表 達(dá)式形式。 p79-80 (1)(4) (1) 首先被調(diào)用的函數(shù)必須是已經(jīng)存在的 函數(shù)(是庫(kù)函數(shù)或用戶自己定義的函數(shù))。 但光有這一條件還不夠。 (2) 如果使

25、用庫(kù)函數(shù),還應(yīng)該在本文件開 頭用命令將調(diào)用有關(guān)庫(kù) 函數(shù)時(shí)所需用到的信息“包含”到本文件 中來(lái)。 (3) 如果使用用戶自己定義的函數(shù),而該 函數(shù)的位置在調(diào)用它的函數(shù)(即主調(diào)函數(shù)) 的后面(在同一個(gè)文件中),應(yīng)該在主調(diào) 函數(shù)中對(duì)被調(diào)用的函數(shù)作聲明對(duì)被調(diào)用的函數(shù)作聲明。 函數(shù)原型的一般形式為函數(shù)原型的一般形式為 (1)(1) 函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名( (參數(shù)類型參數(shù)類型1 1,參數(shù),參數(shù) 類型類型2)2); (2)(2) 函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名( (參數(shù)類型參數(shù)類型1 1,參數(shù),參數(shù) 名名1 1,參數(shù)類型,參數(shù)類型2 2,參數(shù)名,參數(shù)名2)2); “聲明聲明”一詞的原文是delaration,過(guò)去 在許多書中把它譯為“說(shuō)明”。聲明的作聲明的作 用用是把函數(shù)名、函數(shù)參數(shù)的個(gè)數(shù)和參數(shù)類 型等信息通知編譯系統(tǒng),以便在遇到函數(shù) 調(diào)用時(shí),編譯系統(tǒng)能正確識(shí)別函數(shù)并檢查 調(diào)用是否合法。 (例如函數(shù)名是否正確, 實(shí)參與形

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論