c語(yǔ)言中什么是函數(shù)
c語(yǔ)言中什么是函數(shù)
函數(shù)(function)表示每個(gè)輸入值對(duì)應(yīng)唯一輸出值的一種對(duì)應(yīng)關(guān)系。這種關(guān)系使一個(gè)集合里的每一個(gè)元素對(duì)應(yīng)到另一個(gè)(可能相同的)集合里的唯一元素。函數(shù)f中對(duì)應(yīng)輸入值的輸出值x的標(biāo)準(zhǔn)符號(hào)為f(x)。包含某個(gè)函數(shù)所有的輸入值的集合被稱作這個(gè)函數(shù)的定義域,包含所有的輸出值的集合被稱作值域。若先定義映射的概念,可以簡(jiǎn)單定義函數(shù)為,定義在非空數(shù)集之間的映射稱為函數(shù)。
函數(shù)(Function)是可以重復(fù)使用的一段代碼。
參數(shù)
函數(shù)的一個(gè)明顯特征就是使用時(shí)帶括號(hào)( ),必要的話,括號(hào)中還要包含數(shù)據(jù)或變量,稱為參數(shù)(Parameter)。參數(shù)是函數(shù)需要處理的數(shù)據(jù),例如:
strlen(str1)用來(lái)計(jì)算字符串的長(zhǎng)度,str1就是參數(shù)。
puts("C語(yǔ)言中文網(wǎng)")用來(lái)輸出字符串,"C語(yǔ)言中文網(wǎng)"就是參數(shù)。
返回值
既然函數(shù)可以處理數(shù)據(jù),那么就有必要將處理結(jié)果告訴我們,所以很多函數(shù)都有返回值。所謂返回值,就是函數(shù)的執(zhí)行結(jié)果。例如:
char str1[] = "C Language";
int len = strlen(str1);
strlen 的執(zhí)行結(jié)果是字符串 str1 的長(zhǎng)度,是一個(gè)整數(shù),我們通過(guò) len 變量來(lái)接收。
函數(shù)返回值有固定的數(shù)據(jù)類型(int、char、float等),用來(lái)接收返回值的變量類型要一致。
庫(kù)函數(shù)
C語(yǔ)言開(kāi)發(fā)者已經(jīng)為我們編寫好了幾百個(gè)常用的函數(shù),并分門別類的放到了不同的頭文件(實(shí)際上僅僅是在頭文件中進(jìn)行了聲明),使用函數(shù)時(shí),要引入對(duì)應(yīng)的頭文件。
這些在C語(yǔ)言發(fā)布時(shí)已經(jīng)編寫好的函數(shù)叫做庫(kù)函數(shù);我們也可以編寫自己的函數(shù),叫做自定義函數(shù)。自定義函數(shù)和庫(kù)函數(shù)沒(méi)有本質(zhì)的區(qū)別,表現(xiàn)形式和使用方法一樣,只是作者不同而已。