函數(shù)是數(shù)學(xué)名詞,代數(shù)式中,凡相關(guān)的兩數(shù)X與Y,對于每個X值,都只有一個Y的對應(yīng)值。這種對應(yīng)關(guān)系就表示Y是X的函數(shù)。
按需求定制網(wǎng)站可以根據(jù)自己的需求進(jìn)行定制,做網(wǎng)站、成都網(wǎng)站設(shè)計構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司做網(wǎng)站、成都網(wǎng)站設(shè)計的運(yùn)用實(shí)際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實(shí)際意義
函數(shù)(function)的定義通常分為傳統(tǒng)定義和近代定義,函數(shù)的兩個定義本質(zhì)是相同的,只是敘述概念的出發(fā)點(diǎn)不同,傳統(tǒng)定義是從運(yùn)動變化的觀點(diǎn)出發(fā),而近代定義是從集合、映射的觀點(diǎn)出發(fā)。
函數(shù)的近代定義是給定一個數(shù)集A,假設(shè)其中的元素為x,對A中的元素x施加對應(yīng)法則f,記作f(x),得到另一數(shù)集B,假設(shè)B中的元素為y,則y與x之間的等量關(guān)系可以用y=f(x)表示,函數(shù)概念含有三個要素:定義域A、值域B和對應(yīng)法則f。其中核心是對應(yīng)法則f,它是函數(shù)關(guān)系的本質(zhì)特征。
函數(shù),最早由中國清朝數(shù)學(xué)家李善蘭翻譯,出于其著作《代數(shù)學(xué)》。之所以這么翻譯,他給出的原因是“凡此變數(shù)中函彼變數(shù)者,則此為彼之函數(shù)”,也即函數(shù)指一個量隨著另一個量的變化而變化,或者說一個量。
C語言的發(fā)展頗為有趣,它的原型ALGOL 60語言。那么大家知道C語言函數(shù)是什么嗎?下面一起來看看!
函數(shù)(Function)是一段可以重復(fù)使用的代碼,這是從整體上對函數(shù)的認(rèn)識。
C語言本身帶了很多庫函數(shù),并分門別類地放在了不同的頭文件中,使用時只要引入對應(yīng)的頭文件即可。
除了C語言自帶的.函數(shù),我們也可以編寫自己的函數(shù),稱為自定義函數(shù)(User-Defined Function)。自定義函數(shù)和庫函數(shù)沒有本質(zhì)的區(qū)別,表現(xiàn)形式和使用方法一樣,只是開發(fā)者不同而已。
這一章我們就來講解如何編寫和使用自己的函數(shù)。
參數(shù)
函數(shù)的一個明顯特征就是使用時帶括號( ),必要的話,括號中還要包含數(shù)據(jù)或變量,稱為參數(shù)(Parameter)。參數(shù)是函數(shù)需要處理的數(shù)據(jù),例如:
strlen(str1)用來計算字符串的長度,str1就是參數(shù)。
puts("C語言中文網(wǎng)")用來輸出字符串,"C語言中文網(wǎng)"就是參數(shù)。
返回值
既然函數(shù)可以處理數(shù)據(jù),那就有必要將處理結(jié)果告訴我們,所以很多函數(shù)都有返回值(Return Value)。所謂返回值,就是函數(shù)的執(zhí)行結(jié)果。例如:
char str1[] = "C Language";
int len = strlen(str1);
strlen() 的處理結(jié)果是字符串 str1 的長度,是一個整數(shù),我們通過 len 變量來接收。
函數(shù)返回值有固定的數(shù)據(jù)類型(int、char、float等),用來接收返回值的變量類型要一致。
1.i/o函數(shù)
(1)scanf函數(shù):
int
scanf(const
char
*format…..);
從標(biāo)準(zhǔn)輸入流stdin中按格式format將數(shù)據(jù)寫到參數(shù)表中;若操作成功,返回寫到參數(shù)表中的參數(shù)個數(shù),否則返回eof;
注意以下幾點(diǎn):
①scanf函數(shù)沒有精度控制
如出現(xiàn):
scanf(“%6.2f”,a);
是絕對錯誤的
②在以%c格式輸入字符數(shù)據(jù)時,所有輸入的均為有效字符
如:
scanf(“%c%c%c”,a,b,c);
輸入:d
e
f
則a=’d’,b為空格字符'
',c=’d’
如果以%s讀入字符串,則空格鍵和回車鍵都可以作為輸入結(jié)束的標(biāo)志
如:
scanf(“%s%s”,p,q);---------p,q均為指針
輸入:hello
world與
hello
world
效果是相同的,p均指向hello這個字符串,q均指向world這個字符串
③如果在格式控制字符串中有非格式字符,則輸入時要照原樣入;
如:
scanf(“%d,%d,%d,”,,b,c);
則輸入時必須加上逗號:5,6,7
④如果同while配合用的話,則需注意去掉回車鍵
如有下面一段程序:
while(scanf(“%d”,n)==1n!=0)
{
char
ch;
scanf(“%c”,ch);
printf(“%c\n”,ch);
}
則輸出結(jié)果是:
2
3
結(jié)果表明ch字符是回車鍵
所以如果要消除影響:
有兩種方法:
1)加上getchar();
while(scanf(“%d”,n)==1n!=0)
{
getchar();
char
ch;
scanf(“%c”,ch);
printf(“%c\n”,ch);
}
2)在while中加上%*c
while(scanf(“%d%*c”,n)==1n!=0)即可
2.數(shù)學(xué)函數(shù)
(1)求絕對值
double
fabs(double
);
float
fabsf(float);
long
double
fabsl(long
double);
int
abs(int);
long
int
labs(long
int);
(2)floor函數(shù):返回不大于參數(shù)的整數(shù)
float
floor(float);
double
floor(double);
(3)ceil函數(shù):返回不小于參數(shù)的整數(shù)
float
ceil(float);
double
floor(double);
(4)pow:返回x^y;
double
pow(double
x,double
y);
(5)sqrt:返回x的開方
double
sqrt(double
x);
(6)log2,log10:返回底數(shù)的自然對數(shù)值
double
log2(double
x);
double
log10(double
x);
3.字符串處理函數(shù)
(1)char
*strchr(const
char
*str,int
ch);
返回str中第一次出現(xiàn)字符ch的位置指針,否則返回null;
(2)char
*strstr(const
char
*str1,const
char
*str2);
返回str1中第一次出現(xiàn)str2的位置指針,否則返回null;
(3)int
stricmp(const
char
*str1,const
char
*str2);
忽略字符的大小寫進(jìn)行比較
(4)int
strncmp(const
char
*str1,const
char
*str2,int
count);
將str1前n個字符與str2的前n個字符進(jìn)行比較
(5)char
*strncpy(char
*str1,const
char
*str2,int
count);
將str2的前n個字符復(fù)制到str1中
(6)char
*strrev(char
*str);
將字符串str逆序,并返回逆置后的結(jié)果
4.常用使用函數(shù)
(1)double
atof(const
char
*str);
將字符串str表示的數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù)
(2)int
atoi(const
char
*str);
將字符串str表示的數(shù)轉(zhuǎn)換成整數(shù)
(3)void
qsort(void
*buf,int
count,int
size,cmp);————count為所需要進(jìn)行排序的元素個數(shù),size為每個元素所占用的空間
快速排序
函數(shù)是一組一起執(zhí)行一個任務(wù)的語句。每個 C 程序都至少有一個函數(shù),即主函數(shù) main() ,所有簡單的程序都可以定義其他額外的函數(shù)。
您可以把代碼劃分到不同的函數(shù)中。如何劃分代碼到不同的函數(shù)中是由您來決定的,但在邏輯上,劃分通常是根據(jù)每個函數(shù)執(zhí)行一個特定的任務(wù)來進(jìn)行的。
C 標(biāo)準(zhǔn)庫提供了大量的程序可以調(diào)用的內(nèi)置函數(shù)。例如,函數(shù) strcat() 用來連接兩個字符串,函數(shù) memcpy() 用來復(fù)制內(nèi)存到另一個位置。
函數(shù)還有很多叫法,比如方法、子例程或程序,等等。
C 語言中的函數(shù)定義的一般形式如下:
在 C 語言中,函數(shù)由一個函數(shù)頭和一個函數(shù)主體組成。下面列出一個函數(shù)的所有組成部分:
以下是 max() 函數(shù)的源代碼。該函數(shù)有兩個參數(shù) num1 和 num2,會返回這兩個數(shù)中較大的那個數(shù):
創(chuàng)建 C 函數(shù)時,會定義函數(shù)做什么,然后通過調(diào)用函數(shù)來完成已定義的任務(wù)。
當(dāng)程序調(diào)用函數(shù)時,程序控制權(quán)會轉(zhuǎn)移給被調(diào)用的函數(shù)。被調(diào)用的函數(shù)執(zhí)行已定義的任務(wù),當(dāng)函數(shù)的返回語句被執(zhí)行時,或到達(dá)函數(shù)的結(jié)束括號時,會把程序控制權(quán)交還給主程序。
調(diào)用函數(shù)時,傳遞所需參數(shù),如果函數(shù)返回一個值,則可以存儲返回值。例如:
如上把 max() 函數(shù)和 main() 函數(shù)放一塊,編譯源代碼。當(dāng)運(yùn)行最后的可執(zhí)行文件時,會產(chǎn)生下列結(jié)果:
形式參數(shù)就像函數(shù)內(nèi)的其他局部變量,在進(jìn)入函數(shù)時被創(chuàng)建,退出函數(shù)時被銷毀。
當(dāng)調(diào)用函數(shù)時,有兩種向函數(shù)傳遞參數(shù)的方式:
默認(rèn)情況下,C 使用 傳值調(diào)用 來傳遞參數(shù)。一般來說,這意味著函數(shù)內(nèi)的代碼不能改變用于調(diào)用函數(shù)的實(shí)際參數(shù)。
編程中的函數(shù)的英文名是function,而function有一個意思叫“功能”,所以編程中的函數(shù)一詞可以理解為”實(shí)現(xiàn)某個功能的模塊“。
比如學(xué)下面這個求最大值的函數(shù)
int?max(int?a,int?b)
{
return?(ab)?a:b;
}
它就是一個“功能”,或者說是一個“功能模塊”,它所實(shí)現(xiàn)的功能就是將所給的兩個值中更大的那個找出來并返回給調(diào)用它的地方。
中文之所以稱之為函數(shù),原因可能是數(shù)學(xué)中的函數(shù)往往有輸入和輸出,比如y=2x,x是輸入,給了輸入,就會有一個輸出y,而編程中的function也符合這一點(diǎn)(當(dāng)然,輸入不是必須的)。而且將function譯為功能感覺也怪怪的,要也是叫功能模塊更符合一點(diǎn)。
當(dāng)前名稱:c語言函數(shù)都代表什么意思,C語言中的函數(shù)是什么意思
地址分享:http://muchs.cn/article18/phecgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)建站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)