《零基礎(chǔ)看得懂的C語(yǔ)言入門教程 》——(十一)C語(yǔ)言自定義函數(shù)真的很簡(jiǎn)單
一、學(xué)習(xí)目標(biāo)
了解C語(yǔ)言的自定義函數(shù)的使用方法
了解C語(yǔ)言自定義函數(shù)的傳參
了解C語(yǔ)言自定義函數(shù)的返回值
目錄
C語(yǔ)言真的很難嗎?那是你沒(méi)看這張圖,化整為零輕松學(xué)習(xí)C語(yǔ)言。
第一篇:(一)脫離學(xué)習(xí)誤區(qū)
第二篇:(二)C語(yǔ)言沒(méi)那么難簡(jiǎn)單開發(fā)帶你了解流程
第三篇:(三)輕輕松松理解第一個(gè)C語(yǔ)言程序
第四篇:(四)C語(yǔ)言的基本數(shù)據(jù)類型及變量
第五篇:(五)C語(yǔ)言的變量、常量及運(yùn)算
第六篇:(六)輕輕松松了解C語(yǔ)言的邏輯運(yùn)算
第七篇:(七)C語(yǔ)言的循環(huán)分分鐘上手
第八篇:(八)了解基本數(shù)組還不是那么簡(jiǎn)單
第九篇:(九)C語(yǔ)言二維數(shù)組與循環(huán)嵌套
第十篇:(十)C語(yǔ)言的指針原來(lái)是這樣
第十二篇:(十二)原來(lái)結(jié)構(gòu)體是這么回事
第十三篇:(十三)socket服務(wù)端編寫
C語(yǔ)言新手的100個(gè)報(bào)錯(cuò)解法
歡迎大家關(guān)注公眾號(hào),公眾號(hào)每滿1024及1024倍數(shù)則會(huì)抽獎(jiǎng)贈(zèng)送機(jī)械鍵盤一份+IT書籍2份喲~
二、了解C語(yǔ)言自定義函數(shù)的使用方法
在C語(yǔ)言中函數(shù)是可以自定義的,根據(jù)自己的需求實(shí)現(xiàn)不同的函數(shù)方便在之后開發(fā)中使用。
2.1 了解自定義函數(shù)的使用方法
自定義函數(shù)由幾部分構(gòu)成,最簡(jiǎn)單的函數(shù)有返回類型修飾符、函數(shù)名以及函數(shù)體。返回類型的修飾符為類型修飾符,如int、float、char等;返回類型修飾符一般放在函數(shù)名前,函數(shù)名的定義方式與變量名定義規(guī)范類似;自定義函數(shù)的函數(shù)體則是在一對(duì)花括號(hào)內(nèi)的代碼內(nèi)容。
我們先看一個(gè)示例:
#include
1
2
3
4
5
6
7
8
以上代碼中,自定義函數(shù)為:
void func(){ printf("這里是自定義函數(shù)\n"); }
1
2
3
在以上對(duì)于函數(shù)的描述中,我們得知最簡(jiǎn)單的函數(shù)構(gòu)成為類型修飾符、函數(shù)名以及函數(shù)體。以上函數(shù)的類型修飾符為void,void表示當(dāng)前函數(shù)沒(méi)有返回值(什么是返回值接下來(lái)會(huì)說(shuō)到)。函數(shù)名為func,函數(shù)名后接著一堆圓括號(hào),圓括號(hào)后有一對(duì)花括號(hào),花括號(hào)內(nèi)則是函數(shù)體。當(dāng)前函數(shù)體內(nèi)的內(nèi)容為輸出"這里是自定義函數(shù)\n"這一個(gè)提示。當(dāng)前函數(shù)的功能也就是顯示 "這里是自定義函數(shù)\n"這個(gè)內(nèi)容了。
在main中,調(diào)用了自定義函數(shù)func。之前我們已經(jīng)知道,函數(shù)使用方式為函數(shù)名后接一堆圓括號(hào),所以代碼寫為 func();,用分號(hào)結(jié)束。調(diào)用后將會(huì)執(zhí)行函數(shù)中的代碼將會(huì)顯示 "這里是自定義函數(shù)\n"。
運(yùn)行結(jié)果如下:
細(xì)心的同學(xué)發(fā)現(xiàn),其實(shí)我們的main也是一個(gè)函數(shù),我們使用void修飾main函數(shù),不過(guò)main是系統(tǒng)函數(shù)表示當(dāng)前代碼的入口,我們所編寫的代碼將會(huì)從main函數(shù)第一條語(yǔ)句開始運(yùn)行。
2.2 了解有參函數(shù)的使用方法
我們經(jīng)常使用printf函數(shù),該函數(shù)我們傳入什么值將會(huì)在程序運(yùn)行時(shí)顯示什么值;所傳入的值稱為參數(shù),我們自定義的函數(shù)也可以實(shí)現(xiàn)這個(gè)功能。例如我想顯示變量a的值,只需要修改一下上一節(jié)的代碼即可實(shí)現(xiàn),代碼如下:
#include
1
2
3
4
5
6
7
8
9
以上代碼在func函數(shù)的圓括號(hào)中添加了int a,int a表示func函數(shù)接收一個(gè)整數(shù)類型的變量a;在func函數(shù)中,使用printf函數(shù)輸出了變量a的值,在函數(shù)中使用的a變量在func(int a)中表示聲明,具體值需要在使用函數(shù)時(shí)傳入。使用函數(shù)傳參只需要函數(shù)名后接的圓括號(hào)中傳入值,則表示把值賦值給func圓括號(hào)中的變量a,如func(a); 則表示把外部的a變量值賦值給func函數(shù)的a變量。
在以上函數(shù)中,func(int a)的變量a與main函數(shù)的a是有區(qū)別的;就好比你們學(xué)校校長(zhǎng)叫做小明,你們班有個(gè)學(xué)生叫做小明,在你們班級(jí)平常稱呼中,小明指的是你們班級(jí)的小明,并不是校長(zhǎng);函數(shù)也一樣,在函數(shù)中,使用的a單單值函數(shù)內(nèi)的a,func(int a)中的a,以及接下來(lái)函數(shù)內(nèi)使用的a只代表當(dāng)前函數(shù)。
結(jié)果如下:
當(dāng)然傳入的值也可以寫為具體的值,代碼如下:
#include
1
2
3
4
5
6
7
8
9
運(yùn)行結(jié)果如下:
2.2 了解有多個(gè)參函數(shù)的使用方法
以上了解了一個(gè)參數(shù)的自定義函數(shù),接下來(lái)了解多個(gè)參數(shù)的自定義參數(shù)使用方法。查看示例:
#include
1
2
3
4
5
6
7
8
9
以上代碼中,func函數(shù)接收兩個(gè)參數(shù),一個(gè)是a,一個(gè)是b,兩個(gè)參數(shù)之間使用逗號(hào)間隔,func自定義函數(shù)中則會(huì)輸出兩個(gè)數(shù)相加的結(jié)果。在main函數(shù)中,定義了兩個(gè)變量一個(gè)為a1,一個(gè)為b1,使用func后傳入兩個(gè)變量,它們之間使用逗號(hào)間隔。
運(yùn)行結(jié)果如下:
2.2 了解自定義函數(shù)返回值
我們修改上一節(jié)示例,現(xiàn)在需求更換為只需要得到兩個(gè)值做加法運(yùn)算后的值,不需要在函數(shù)中輸出,只需要在外部輸出結(jié)果。代碼如下:
#include
1
2
3
4
5
6
7
8
9
10
11
以上代碼中,void func 修改成了int func,void表示當(dāng)前函數(shù)無(wú)返回值,使用int 表示當(dāng)前函數(shù)將會(huì)返回一個(gè)整數(shù)值表示當(dāng)前函數(shù)最終的結(jié)果。
在函數(shù)體中定義了一個(gè)整數(shù)類型變量c,并且直接賦值為a+b的結(jié)果;最后使用return關(guān)鍵字表示把變量c的值給返回出去。在外部需要使用一個(gè)變量接收如 int c=func(a,b); ,這時(shí)變量c就得到了func函數(shù)返回的值。在以上代碼中使用printf函數(shù)查看c的結(jié)果。
運(yùn)行結(jié)果如下:
當(dāng)然也可以直接輸出函數(shù)的結(jié)果值:
#include
1
2
3
4
5
6
7
8
9
10
想要再簡(jiǎn)便代碼一點(diǎn)也可以這樣:
#include
1
2
3
4
5
6
7
8
9
描述函數(shù)返回值的修飾符一定要與返回值類型一致,否則將會(huì)出現(xiàn)無(wú)法預(yù)料的結(jié)果或者直接報(bào)錯(cuò)。
以上代碼我使用void修飾了一個(gè)有返回值的函數(shù),編譯器直接報(bào)錯(cuò)提示我的函數(shù)是有返回值的但是用了void修飾。
三、總結(jié)
通過(guò)以上描述與講解,我們了解了以下幾點(diǎn)內(nèi)容:
了解了自定義函數(shù)的基本使用方法
了解了自定義函數(shù)類型修飾符與變量類型修飾符一致
了解了有參自定義函數(shù)的使用方法
了解了自定義函數(shù)有返回值的使用方法
C 語(yǔ)言
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。