c語言調(diào)用函數(shù)原則
發(fā)布時間:2025-10-22 | 來源:互聯(lián)網(wǎng)轉(zhuǎn)載和整理
一、C語言函數(shù)
1.概念:函數(shù)是一組一起執(zhí)行一個任務(wù)的語句,每個c程序都必須有一個main函數(shù),程序員可以把代碼劃分到不同的函數(shù)當(dāng)中去,在邏輯上,劃分通常是根據(jù)每個函數(shù)執(zhí)行一個特定的任務(wù)來進(jìn)行的。c標(biāo)準(zhǔn)庫提供了可以大量調(diào)用的庫函數(shù),比如,printf,strcmp等。
2.函數(shù)的定義
c語言中函數(shù)的一般定義如下:
return_type Function_name(Parameter List)
{
The function body
}
在c語言中,函數(shù)由一個函數(shù)頭和一個函數(shù)主體組成,組成有以下方面:
函數(shù)名稱:上面的函數(shù)名稱即為max。
函數(shù)的返回類型:一個函數(shù)可以返回一個值,這里的max函數(shù)的返回值是一個int型的整數(shù),函數(shù)也可以沒有返回值,例如void max(),void代表該函數(shù)是一個沒有返回值的函數(shù)。
注意函返回類型的值以該函數(shù)的返回類型一致,具體表現(xiàn)為:
函數(shù)的參數(shù):當(dāng)一個函數(shù)被調(diào)用時可以向該函數(shù)的參數(shù)傳遞一個值,這個值叫做實際參數(shù),簡稱實參,函數(shù)的參數(shù)叫形式參數(shù),簡稱形參。當(dāng)然一個函數(shù)也可以沒有參數(shù)。
函數(shù)主體:其包括該函數(shù)里執(zhí)行任務(wù)的語句,例子中的函數(shù)主體就是return a>b?a:b;
下面是一個定義一個比較大小函數(shù)的實例:
3.函數(shù)在定義時會有兩種情況
在main函數(shù)之前定義,程序在這種情況下不需要再main函數(shù)里聲明。
在main函數(shù)之后定義,這時需要在main函數(shù)里聲明該函數(shù),比如,聲明Max函數(shù)時
int main()
{
int Max(int a,int b);
}
二、函數(shù)的調(diào)用
1.定義函數(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ù)的例子:
2.函數(shù)的嵌套調(diào)用與遞歸
函數(shù)的嵌套調(diào)用:簡單來說就是在一個定義的函數(shù)里在調(diào)用另一個函數(shù);
下面是一個比較三個數(shù)大小的例子:
函數(shù)的遞歸調(diào)用:遞歸是一種特殊的函數(shù)調(diào)用方式,簡單來說就是在一個函數(shù)里再調(diào)用它自身為遞歸調(diào)用,函數(shù)遞歸會不斷調(diào)用自己,每調(diào)用自己一次就進(jìn)入新的一層,當(dāng)最內(nèi)層函數(shù)執(zhí)行完后然后一層層向外退出。
3.函數(shù)的傳參
函數(shù)傳遞參數(shù)會有兩種方式:
1.傳值調(diào)用:該方法把參數(shù)的實際值復(fù)制給函數(shù)的形式參數(shù)。在這種情況下,修改函數(shù)內(nèi)的形式參數(shù)不會影響實際參數(shù)。(該方式在函數(shù)內(nèi)部不會改變實參的值),比如下面的例子可以說明這點:
在函數(shù)調(diào)用過程中,系統(tǒng)會為形參重新申請內(nèi)存,函數(shù)調(diào)用完后形參會被釋放掉。
2.引用調(diào)用:通過指針傳遞方式,形參為指向?qū)崊⒌刂返闹羔?,?dāng)對形參的指向操作時,就相當(dāng)于對實參本身進(jìn)行的操作。