函數(shù)
函數(shù)是一組一起執(zhí)行一個(gè)任務(wù)的語句。每個(gè) C 程序都至少有一個(gè)函數(shù),即主函數(shù) main() ,所有簡(jiǎn)單的程序都可以定義其他額外的函數(shù),函數(shù)是C源程序的基本模塊。
- 函數(shù)聲明:告訴編譯器函數(shù)的名稱,返回類型和參數(shù)。
- 函數(shù)定義:提供函數(shù)的實(shí)際主體。
函數(shù)聲明:
return_type function_name( parameter list );
函數(shù)定義形式:
return_type function_name(parameter list){
body of function
}
- 返回類型(return_type):一個(gè)函數(shù)返回一個(gè)值,而這個(gè)是返回值的數(shù)據(jù)類型。void類型就是某些函數(shù)不需要返回值的體現(xiàn)。
- 參數(shù)名稱(function_name):函數(shù)的名稱。
- 參數(shù):調(diào)用函數(shù)時(shí)向函數(shù)傳遞的值。參數(shù)列表包含函數(shù)參數(shù)的數(shù)據(jù)類型,順序和數(shù)量。當(dāng)無參數(shù)時(shí),void或者不寫參數(shù)。
- 參數(shù)主體:一組定義函數(shù)執(zhí)行任務(wù)的語句。
下面舉個(gè)例子來具體說明一下:
//函數(shù)作用:求2個(gè)浮點(diǎn)數(shù)的和并返回整數(shù)結(jié)果
int sum(float a,float b){
//定義局部變量來接收結(jié)果
int result;
result = (int)(a + b);
//返回結(jié)果
return result;
//return (int)(a+b);
}
以上sum函數(shù)有2個(gè)浮點(diǎn)數(shù)a與b,返回值是2個(gè)浮點(diǎn)數(shù)的整數(shù)和。
這個(gè)函數(shù)的聲明為:
int sum(float a,float b);
調(diào)用函數(shù)
當(dāng)調(diào)用函數(shù)時(shí),傳遞函數(shù)所需要參數(shù),函數(shù)有返回值的情況下,可以接收返回值。
#include <stdio.h>
/* 函數(shù)聲明 */
int sum(float a, float b);
int main ()
{
// 局部變量定義
float A = 10.0;
float B = 7.0;
int Sum;
//進(jìn)行求和
Sum= sum(A, B);
printf( "Sum value is : %d\n", Sum );
return 0;
}
//求2個(gè)浮點(diǎn)數(shù)的和并返回整數(shù)結(jié)果
int sum(float a,float b){
//定義局部變量來接收結(jié)果
int result;
result = (int)(a + b);
//返回結(jié)果
return result;
//return (int)(a+b);
}
之后執(zhí)行結(jié)果為:
Sum value is 17
形參和實(shí)參
在上面的函數(shù)中,有形式參數(shù)(a,b)和實(shí)際參數(shù)(A,B)之分,那么他們區(qū)別是什么。
實(shí)參:在調(diào)用時(shí)傳遞給函數(shù)的參數(shù). 實(shí)參可以是常量、變量、表達(dá)式、函數(shù)等, 無論實(shí)參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應(yīng)預(yù)先用賦值,輸入等辦法使實(shí)參獲得確定值。
形參(parameter):又稱虛擬變量。是在定義函數(shù)名和函數(shù)體的時(shí)候使用的參數(shù),目的是用來接收調(diào)用該函數(shù)時(shí)傳入的參數(shù).在調(diào)用函數(shù)時(shí),實(shí)參將賦值給形參。因而,必須注意實(shí)參的個(gè)數(shù),類型應(yīng)與形參一一對(duì)應(yīng),并且實(shí)參必須要有確定的值。
- 形參出現(xiàn)在函數(shù)定義中,在整個(gè)函數(shù)體內(nèi)都可以使用, 離開該函數(shù)則不能使用。實(shí)參出現(xiàn)在主調(diào)函數(shù)中,進(jìn)入被調(diào)函數(shù)后,實(shí)參變量也不能使用。
- 形參和實(shí)參的功能是作數(shù)據(jù)傳送。發(fā)生函數(shù)調(diào)用時(shí), 主調(diào)函數(shù)把實(shí)參的值傳送給被調(diào)函數(shù)的形參從而實(shí)現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳送。