C/C++編程筆記:函數(shù)部分!教你如何了解和使用函數(shù)

函數(shù)是一組語(yǔ)句,這些語(yǔ)句接受輸入,進(jìn)行一些特定的計(jì)算并產(chǎn)生輸出。
我們的想法是將一些通?;蛑貜?fù)完成的任務(wù)放在一起,并創(chuàng)建一個(gè)函數(shù),這樣我們就可以調(diào)用該函數(shù),而不是為不同的輸入一次又一次地編寫相同的代碼。

函數(shù)的一般形式為:
return_type function_name([ arg1_type arg1_name, ... ]) { code }??
示例:
下面是一個(gè)簡(jiǎn)單的C / C ++程序來(lái)演示功能。

我們?yōu)槭裁葱枰δ埽?/strong>
函數(shù)可幫助我們減少代碼冗余。如果功能是在軟件中的多個(gè)位置執(zhí)行的,則不是一次又一次地編寫相同的代碼,而是創(chuàng)建一個(gè)函數(shù)并在任何地方調(diào)用它。這也有助于維護(hù),因?yàn)槿绻麑?lái)對(duì)功能進(jìn)行更改,則必須在一處進(jìn)行更改。
函數(shù)使代碼模塊化??紤]一個(gè)具有多行代碼的大文件。如果將代碼劃分為功能,那么閱讀和使用代碼將變得非常簡(jiǎn)單。
函數(shù)提供抽象。例如,我們可以使用庫(kù)函數(shù)而不必?fù)?dān)心它們的內(nèi)部工作。
函數(shù)聲明
函數(shù)聲明告訴編譯器函數(shù)需要使用的參數(shù)數(shù)量,參數(shù)的數(shù)據(jù)類型和函數(shù)的返回類型。在函數(shù)聲明中將參數(shù)名稱放在函數(shù)聲明中是可選的,但有必要將其放入定義中。以下是函數(shù)聲明的示例。

int max(int, int);
int *swap(int*,int);
char *call(char b);
int fun(char, int);
始終建議在使用函數(shù)之前先聲明一個(gè)函數(shù)
在C語(yǔ)言中,我們可以在同一位置進(jìn)行聲明和定義,就像在上面的示例程序中一樣。
C還允許分別聲明和定義函數(shù),這在庫(kù)函數(shù)的情況下尤其需要。庫(kù)函數(shù)在頭文件中聲明,并在庫(kù)文件中定義。以下是示例聲明。
傳遞給函數(shù)
的參數(shù)傳遞給函數(shù)的參數(shù)稱為實(shí)際參數(shù)。例如,在上面的程序10和20是實(shí)際參數(shù)。
函數(shù)接收的參數(shù)稱為形式參數(shù)。例如,在上面的程序中,x和y是形式參數(shù)。
有兩種最流行的傳遞參數(shù)的方法。
按值傳遞:在此參數(shù)傳遞方法中,實(shí)際參數(shù)的值將復(fù)制到函數(shù)的形式參數(shù)中,并且兩種類型的參數(shù)存儲(chǔ)在不同的存儲(chǔ)位置中。因此,函數(shù)內(nèi)部所做的任何更改都不會(huì)反映在調(diào)用者的實(shí)際參數(shù)中。
通過引用傳遞實(shí)際參數(shù)和形式參數(shù)都指向相同的位置,因此在函數(shù)內(nèi)部所做的任何更改實(shí)際上都會(huì)反映在調(diào)用者的實(shí)際參數(shù)中。
參數(shù)始終按C中的值傳遞。例如。在下面的代碼中,不使用fun()函數(shù)修改x的值。
C語(yǔ)言:

C++語(yǔ)言:

但是,在C語(yǔ)言中,我們可以使用指針來(lái)獲得按引用傳遞的效果。例如,考慮以下程序。函數(shù)fun()需要指向整數(shù)(或整數(shù)地址)的指針ptr。它修改地址ptr處的值。取消引用運(yùn)算符*用于訪問地址中的值。在語(yǔ)句“ * ptr = 30”中,地址ptr的值更改為30。地址運(yùn)算符&用于獲取任何數(shù)據(jù)類型的變量的地址。在函數(shù)調(diào)用語(yǔ)句“ fun(&x)”中,傳遞x的地址,以便可以使用x的地址對(duì)其進(jìn)行修改。
C語(yǔ)言:

C++語(yǔ)言:

以下是有關(guān)C中函數(shù)的一些重要要點(diǎn)
。1)每個(gè)C程序都有一個(gè)名為main()的函數(shù),當(dāng)用戶運(yùn)行該程序時(shí),操作系統(tǒng)會(huì)調(diào)用該函數(shù)。
2)每個(gè)函數(shù)都有一個(gè)返回類型。如果函數(shù)不返回任何值,則將void用作返回類型。而且,如果函數(shù)的返回類型為void,我們?nèi)匀豢梢栽诤瘮?shù)定義的主體中使用return語(yǔ)句,方法是不提及常數(shù),變量等,而只需提及“ return;”即可。表示功能終止的語(yǔ)句,如下所示:
void function name(int a)
{
.......??
return;?
}? ? ? ? ? ? ?
3)在C語(yǔ)言中,函數(shù)可以返回除數(shù)組和函數(shù)之外的任何類型。我們可以通過返回指向數(shù)組的指針或指向函數(shù)的指針來(lái)解決此限制。
4)?C中的參數(shù)列表為空表示未指定參數(shù)列表,并且可以使用任何參數(shù)調(diào)用函數(shù)。在C語(yǔ)言中,聲明像fun()這樣的函數(shù)不是一個(gè)好主意。要聲明只能不帶任何參數(shù)調(diào)用的函數(shù),我們應(yīng)使用“ void fun(void)”。
附帶說(shuō)明一下,在C ++中,空列表意味著只能在沒有任何參數(shù)的情況下調(diào)用函數(shù)。在C ++中,void fun()和void fun(void)相同。
5)如果在C程序中,在聲明函數(shù)之前調(diào)用了一個(gè)函數(shù),則C編譯器將自動(dòng)采用以下方式假定該函數(shù)的聲明:
int函數(shù)名稱();
在這種情況下,如果該函數(shù)的返回類型與INT不同,則編譯器將顯示錯(cuò)誤。
主要功能:
主要功能是特殊功能。每個(gè)C ++程序都必須包含一個(gè)名為main的函數(shù)。它充當(dāng)程序的入口點(diǎn)。計(jì)算機(jī)將從主要功能的開頭開始運(yùn)行代碼。
主要功能類型:
1)第一種類型是–不帶參數(shù)的主要功能:
int main()
{
???...
???return 0;
}
2)第二類是具有參數(shù)的主要功能:
int main(int argc, char* const argv[])
{
???...
???return 0;
}
主功能具有參數(shù)選項(xiàng)的原因是允許從命令行輸入。
當(dāng)您將main函數(shù)與參數(shù)一起使用時(shí),它將程序名之后的每組字符(用空格分隔)保存為名為argv的數(shù)組中的元素。
由于main函數(shù)的返回類型為int,因此程序員在代碼中必須始終具有return語(yǔ)句。返回的數(shù)字用于通知調(diào)用程序該程序執(zhí)行的結(jié)果是什么。返回0表示沒有問題。
希望對(duì)你有幫助!更多編程知識(shí)點(diǎn),會(huì)持續(xù)分享哦~
另外如果你想更好的提升你的編程能力,學(xué)好C語(yǔ)言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~

UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~
分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!
編程學(xué)習(xí)書籍分享:

編程學(xué)習(xí)視頻分享:
