c語言中main函數(shù)的三個(gè)要點(diǎn)
發(fā)布時(shí)間:2025-12-07 | 來源:互聯(lián)網(wǎng)轉(zhuǎn)載和整理
C語言函數(shù)三要素是:定義域、值域和對(duì)應(yīng)法則。
一,C語言函數(shù)定義域(1)無參函數(shù)定義的一般形式如下:類型標(biāo)識(shí)符函數(shù)名(){聲明部分語句}其中類型標(biāo)識(shí)符和函數(shù)名稱為函數(shù)頭。類型標(biāo)識(shí)符指明了本函數(shù)的類型,函數(shù)的類型實(shí)際上是函數(shù)返回值的類型。該類型標(biāo)識(shí)符與前面介紹的各種說明符相同。函數(shù)名是由用戶定義的標(biāo)識(shí)符,函數(shù)名后有一個(gè)空括號(hào),其中無參數(shù),但括號(hào)不可少。{}中的內(nèi)容稱為函數(shù)體。在函數(shù)體中聲明部分,是對(duì)函數(shù)體內(nèi)部所用到的變量的類型說明。在很多情況下都不要求無參函數(shù)有返回值,此時(shí)函數(shù)類型符可以寫為void。這里只把main改為Hello作為函數(shù)名,其余不變。Hello函數(shù)是一個(gè)無參函數(shù),當(dāng)被其它函數(shù)調(diào)用時(shí),輸出Hello world字符串。
(2)有參函數(shù)定義的一般形式有參函數(shù)定義的一般形式如下:類型標(biāo)識(shí)符函數(shù)名(形式參數(shù)表列){聲明部分語句}有參函數(shù)比無參函數(shù)多了一個(gè)內(nèi)容,即形式參數(shù)表列。在形參表中給出的參數(shù)稱為形式參數(shù),它們可以是各種類型的變量,各參數(shù)之間用逗號(hào)間隔。在進(jìn)行函數(shù)調(diào)用時(shí),主調(diào)函數(shù)將賦予這些形式參數(shù)實(shí)際的值。形參既然是變量,必須在形參表中給出形參的類型說明。例如定義一個(gè)函數(shù),用于求兩個(gè)數(shù)中的大數(shù),可寫為:第一行說明max函數(shù)是一個(gè)整型函數(shù),其返回的函數(shù)值是一個(gè)整數(shù)。形參為a,b,均為整型量。a,b的具體值是由主調(diào)函數(shù)在調(diào)用時(shí)傳送過來的。在{}中的函數(shù)體內(nèi),除形參外沒有使用其它變量,所以只有語句而沒有聲明部分。在max函數(shù)體中的return語句是把a(bǔ)(或b)的值作為函數(shù)的值返回給主調(diào)函數(shù)。有返回值函數(shù)中至少應(yīng)有一個(gè)return語句。在C程序中,一個(gè)函數(shù)的定義可以放在任意位置,既可放在主函數(shù)main之前,也可放在main之后。例如:可把max 函數(shù)置在main之后,也可以把它放在main之前。修改后的程序如下所示。二,C語言的值域函數(shù)的值是指函數(shù)被調(diào)用之后, 執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值。如調(diào)用正弦函數(shù)取得正弦值,調(diào)用例5.1的max函數(shù)取得的最大數(shù)等。對(duì)函數(shù)的值(或稱函數(shù)返回值)有以下一些說明:
1. 函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。return 語句的一般形式為:return 表達(dá)式;或者為:return (表達(dá)式);該語句的功能是計(jì)算表達(dá)式的值,并返回給主調(diào)函數(shù)。 在函數(shù)中允許有多個(gè)return語句,但每次調(diào)用只能有一個(gè)return 語句被執(zhí)行, 所以只能返回一個(gè)函數(shù)值。
2. 函數(shù)值的類型和函數(shù)定義中函數(shù)的類型應(yīng)保持一致。 如果兩者不一致,則以函數(shù)類型為準(zhǔn),自動(dòng)進(jìn)行類型轉(zhuǎn)換。
3. 如函數(shù)值為整型,在函數(shù)定義時(shí)可以省去類型說明。
4. 不返回函數(shù)值的函數(shù),可以明確定義為“空類型”, 類型說明符為“void”。如例5.3中函數(shù)s并不向主函數(shù)返函數(shù)值,所以可定義為:void s(int n){ ……}三,C語言函數(shù)對(duì)應(yīng)法則(C語言函數(shù)的調(diào)用)函數(shù)調(diào)用的一般形式為:函數(shù)名(實(shí)參列表);實(shí)參可以是常數(shù)、變量、表達(dá)式等,多個(gè)實(shí)參用逗號(hào),分隔。在C語言中,函數(shù)調(diào)用的方式有多種,例如:在函數(shù)調(diào)用中還應(yīng)該注意的一個(gè)問題是求值順序的問題。所謂求值順序是指對(duì)實(shí)參列表中各個(gè)參數(shù)是自左向右使用呢,還是自右向左使用。對(duì)此各系統(tǒng)的規(guī)定不一定相同?!臼纠吭赩C6.0下運(yùn)行以下代碼。運(yùn)行結(jié)果:8 7 6 7可見VC 6.0是按照從右至左的順序求值。如果按照從左至右求值,結(jié)果應(yīng)為:91098函數(shù)的嵌套調(diào)用函數(shù)不能嵌套定義,但可以嵌套調(diào)用,也就是在一個(gè)函數(shù)的定義中出現(xiàn)對(duì)另一個(gè)函數(shù)的調(diào)用。這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用,即在被調(diào)函數(shù)中又調(diào)用其它函數(shù)?!臼纠坑?jì)算sum = 1! + 2! + 3! + ... + (n-1)! + n!分析:可以編寫兩個(gè)函數(shù),一個(gè)用來計(jì)算階乘,一個(gè)用來計(jì)算累加的和。運(yùn)行結(jié)果:
1、!+2!+...+9!+10! = 1215752192函數(shù)聲明和函數(shù)原型C語言代碼由上到下依次執(zhí)行,函數(shù)定義要出現(xiàn)在函數(shù)調(diào)用之前。但是如果在函數(shù)調(diào)用前進(jìn)行了函數(shù)聲明,那么函數(shù)定義就可以出現(xiàn)在任何地方了,甚至是其他文件。函數(shù)聲明的一般形式為:返回值類型函數(shù)名( 類型 形參, 類型 形參… );或?yàn)椋悍祷刂殿愋秃瘮?shù)名( 類型, 類型…);函數(shù)聲明給出了函數(shù)名、返回值類型、參數(shù)列表(參數(shù)類型)等與該函數(shù)有關(guān)的信息,稱為函數(shù)原型。函數(shù)原型的作用是告訴編譯器與該函數(shù)有關(guān)的信息,讓編譯器知道函數(shù)的存在,以及存在的形式,即使函數(shù)暫時(shí)沒有定義,也不會(huì)出錯(cuò)。更改上面的代碼,將 factorial 和 sum 函數(shù)的定義放到 main 函數(shù)后面:運(yùn)行結(jié)果:
1、!+2!+...+9!+10! = 1215752192
下一篇:下套是什么意思