函數(shù)三要素
成都創(chuàng)新互聯(lián)公司10多年企業(yè)網(wǎng)站設(shè)計服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站設(shè)計及推廣,對成都葡萄架等多個方面擁有多年的網(wǎng)站維護經(jīng)驗的網(wǎng)站建設(shè)公司。
鏈接: ?
?pwd=q2p5 提取碼: q2p5 ?
函數(shù)的三個要素:功能,參數(shù),返回值。
C語言函數(shù)三要素是:定義域、值域和對應(yīng)法則。
一,C語言函數(shù)定義域
(1)無參函數(shù)定義的一般形式如下:
類型標識符 ?函數(shù)名(){
聲明部分
語句
}
其中類型標識符和函數(shù)名稱為函數(shù)頭。類型標識符指明了本函數(shù)的類型,函數(shù)的類型實際上是函數(shù)返回值的類型。該類型標識符與前面介紹的各種說明符相同。函數(shù)名是由用戶定義的標識符,函數(shù)名后有一個空括號,其中無參數(shù),但括號不可少。
{}中的內(nèi)容稱為函數(shù)體。在函數(shù)體中聲明部分,是對函數(shù)體內(nèi)部所用到的變量的類型說明。
在很多情況下都不要求無參函數(shù)有返回值,此時函數(shù)類型符可以寫為void。
這里,只把main改為Hello作為函數(shù)名,其余不變。Hello函數(shù)是一個無參函數(shù),當被其它函數(shù)調(diào)用時,輸出Hello world字符串。
(2)有參函數(shù)定義的一般形式
有參函數(shù)定義的一般形式如下:
類型標識符 ?函數(shù)名(形式參數(shù)表列){
聲明部分
語句
}
有參函數(shù)比無參函數(shù)多了一個內(nèi)容,即形式參數(shù)表列。在形參表中給出的參數(shù)稱為形式參數(shù),它們可以是各種類型的變量,各參數(shù)之間用逗號間隔。在進行函數(shù)調(diào)用時,主調(diào)函數(shù)將賦予這些形式參數(shù)實際的值。形參既然是變量,必須在形參表中給出形參的類型說明。
例如,定義一個函數(shù),用于求兩個數(shù)中的大數(shù),可寫為:
第一行說明max函數(shù)是一個整型函數(shù),其返回的函數(shù)值是一個整數(shù)。形參為a,b,均為整型量。a,b的具體值是由主調(diào)函數(shù)在調(diào)用時傳送過來的。在{}中的函數(shù)體內(nèi),除形參外沒有使用其它變量,因此只有語句而沒有聲明部分。在max函數(shù)體中的return語句是把a(或b)的值作為函數(shù)的值返回給主調(diào)函數(shù)。有返回值函數(shù)中至少應(yīng)有一個return語句。
在C程序中,一個函數(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ù)等。對函數(shù)的值(或稱函數(shù)返回值)有以下一些說明:
1. 函數(shù)的值只能通過return語句返回主調(diào)函數(shù)。return 語句的一般形式為:
return 表達式;
或者為:
return (表達式);
該語句的功能是計算表達式的值,并返回給主調(diào)函數(shù)。 在函數(shù)中允許有多個return語句,但每次調(diào)用只能有一個return 語句被執(zhí)行, 因此只能返回一個函數(shù)值。
2. 函數(shù)值的類型和函數(shù)定義中函數(shù)的類型應(yīng)保持一致。 如果兩者不一致,則以函數(shù)類型為準,自動進行類型轉(zhuǎn)換。 3. 如函數(shù)值為整型,在函數(shù)定義時可以省去類型說明。
4. 不返回函數(shù)值的函數(shù),可以明確定義為“空類型”, 類型說明符為“void”。如例5.3中函數(shù)s并不向主函數(shù)返函數(shù)值,因此可定義為:
void s(int n)
{ ……
}
三,C語言函數(shù)對應(yīng)法則(C語言函數(shù)的調(diào)用)
函數(shù)調(diào)用的一般形式為:
函數(shù)名(實參列表);
實參可以是常數(shù)、變量、表達式等,多個實參用逗號,分隔。
在C語言中,函數(shù)調(diào)用的方式有多種,例如:
在函數(shù)調(diào)用中還應(yīng)該注意的一個問題是求值順序的問題。所謂求值順序是指對實參列表中各個參數(shù)是自左向右使用呢,還是自右向左使用。對此,各系統(tǒng)的規(guī)定不一定相同。
【示例】在VC6.0下運行以下代碼。
運行結(jié)果:
8 7 6 7
可見VC 6.0是按照從右至左的順序求值。如果按照從左至右求值,結(jié)果應(yīng)為:
9 ?10 ?9 ?8
函數(shù)的嵌套調(diào)用
函數(shù)不能嵌套定義,但可以嵌套調(diào)用,也就是在一個函數(shù)的定義中出現(xiàn)對另一個函數(shù)的調(diào)用。這樣就出現(xiàn)了函數(shù)的嵌套調(diào)用,即在被調(diào)函數(shù)中又調(diào)用其它函數(shù)。
【示例】計算sum = 1! + 2! + 3! + ... + (n-1)! + n!
分析:可以編寫兩個函數(shù),一個用來計算階乘,一個用來計算累加的和。
運行結(jié)果:
1!+2!+...+9!+10! = 1215752192
函數(shù)聲明和函數(shù)原型
C語言代碼由上到下依次執(zhí)行,函數(shù)定義要出現(xiàn)在函數(shù)調(diào)用之前。
但是,如果在函數(shù)調(diào)用前進行了函數(shù)聲明,那么函數(shù)定義就可以出現(xiàn)在任何地方了,甚至是其他文件。
函數(shù)聲明的一般形式為:
返回值類型 ?函數(shù)名( 類型 形參, 類型 形參… );
或為:
返回值類型 ?函數(shù)名( 類型, 類型…);
函數(shù)聲明給出了函數(shù)名、返回值類型、參數(shù)列表(參數(shù)類型)等與該函數(shù)有關(guān)的信息,稱為函數(shù)原型。
函數(shù)原型的作用是告訴編譯器與該函數(shù)有關(guān)的信息,讓編譯器知道函數(shù)的存在,以及存在的形式,即使函數(shù)暫時沒有定義,也不會出錯。
更改上面的代碼,將 factorial 和 sum 函數(shù)的定義放到 main 函數(shù)后面:
運行結(jié)果:
1!+2!+...+9!+10! = 1215752192
定義一個函數(shù)我們需要確定以下內(nèi)容:
1、函數(shù)的返回值類型
2、函數(shù)的名稱
3、函數(shù)的參數(shù)
4、函數(shù)主體代碼塊
示例代碼:
int definePlus(int a, int b)
{
a = a + 1;
b = b + 1; ??
return a + b;
}
例如上面代碼中就定義了一個返回值為int類型的函數(shù),其函數(shù)名為definePlus,一對小括號中的內(nèi)容為這個函數(shù)的參數(shù),也就是說這個函數(shù)有兩個傳入?yún)?shù)int a和int b。
在函數(shù)體內(nèi),分別讓a在原來的基礎(chǔ)上加1,讓b在原來的基礎(chǔ)上加1,然后使用return關(guān)鍵字返回a + b的和。如果a的值是2,而b的值是3,那么這個函數(shù)的返回值則是7。
擴展資料
函數(shù)的調(diào)用與聲明
如果函數(shù)的定義是在調(diào)用函數(shù)的后面則需要在調(diào)用之前聲明函數(shù)的定義,否則不需要事先聲明。聲明的意思是告訴編譯器,這個函數(shù)的返回值類型、函數(shù)名和參數(shù)。
在調(diào)用一個函數(shù)時,需要向這個函數(shù)傳其需要的參數(shù),例如a和b這兩個變量,并可以指定另一個變量用于接收這個函數(shù)執(zhí)行后的返回值,比如變量c就接收了函數(shù)wrongplus()的返回值,結(jié)果為7。
但是我們看到程序的運行結(jié)果是?2 + 3 = 7,也就是說,執(zhí)行了函數(shù)wrongplus()后,我們雖然對函數(shù)內(nèi)的參數(shù)變量分別加1,但主函數(shù)main中的a和b的值并沒有發(fā)生變化。示例代碼:
#include stdio.h
main()
{
int a = 2, b = 3;
int c;
int wrongplus(int a, int b);
c = wrongplus(a, b);
printf("%d + %d = %d\n",a, b, c);
}
int wrongplus(int a, int b){
a = a + 1;
b = b + 1; ??
return a + b;
}
2 + 3 = 7
函數(shù)定義的一般形式只包括函數(shù)首部和函數(shù)體兩部分,其中函數(shù)首部由函數(shù)類型和函數(shù)名和形參表組成,函數(shù)體包括一對大括號內(nèi)的若干條語句,體現(xiàn)函數(shù)的實現(xiàn)過程,并用return 語句返回寒函數(shù)運算結(jié)。沒聽說過什么六個部分。
網(wǎng)站名稱:c語言函數(shù)定義要素 c語言中函數(shù)定義時涉及的基本要素是
文章源于:http://www.chinadenli.net/article34/dddsope.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航、云服務(wù)器、Google、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)