首頁 > 後端開發 > C#.Net教程 > C語言函數基礎有哪些?

C語言函數基礎有哪些?

coldplay.xixi
發布: 2020-06-11 16:36:58
原創
4579 人瀏覽過


C語言函數基礎有哪些?

#C語言函數基礎有哪些?

C語言函數基礎有:

一、定義、宣告、呼叫

# #函數形參列表:如果沒有參數,寫成空,變數之間用逗號隔開
函數: 一段可以重複使用的程式碼
#函數三要素: 傳回值函數名函數形參列表
函數宣告: 包含函數的三要素
函數定義: 函數的具體實作
傳回值: 如果一個函數沒有傳回值,則寫成void

二、函數宣告:

函數宣告時,形參可以不加變數名,只有型別也可以

int add(int, int);
登入後複製


##三、函數定義:

函數定義時,形參可以必須要有變數名稱

int add(int a, int b)
{
int sum = a + b;
return sum;
}
登入後複製


##四、函數呼叫:

如果函數定義在主函數上方,可以不寫函數宣告。

如果函數定義在主函數下方,必須在主函數上方寫好宣告

int main()
{
int a = 10;
int b = 20;
// 函数调用的时候,传的参数叫实参
int sum= add(a, b);
printf (“sum = %d\n”, sum);
return 0;
}
登入後複製


#五、函數名稱

函數名稱是函數的入口位址

定義一個函數指標:

int (*p)(int a.int b) =add;
登入後複製

六、遞歸函數

一個函數在它的函數體內調用它本身稱為遞歸調用,這種函數稱為遞歸函數。執行遞歸函數將重複呼叫其自身,每呼叫一次就進入新的一層。

用遞迴計算 n!。階乘 n! 的計算公式如下:

根據公式程式設計:

long factorial(int n)
{
long result;
if(n ==0 || n ==1)
{
result = 1;
}
else
{
result = factorial(n-1) * n; // 递归调用
}
return result;
}
登入後複製

這是一個典型的遞歸函數。呼叫factorial後即進入函數體,只有當 n== 0 或 n==1 時函數才會執行結束,否則就一直呼叫它本身。


由於每次調用的實參為n-1,即把n-1 的值賦給形參n,所以每次遞歸實參的值都減1,直到最後n- 1 的值為1 時再作遞歸調用,形參n 的值也為1,遞歸就終止了,會逐層退出。

例如求 5!,即呼叫factorial(5)。當進入factorial函數體後,由於n=5,不等於0或1,所以執行result = factorial(n-1) * n;,即result = factorial(5-1) * 5;,接下來也就是調用factorial(4)。這是第一次遞歸。

進行四次遞迴呼叫後,實參的值為 1,也就是呼叫factorial(1)。這時遞歸就結束了,開始逐層返回。 factorial(1) 的值為1,factorial(2) 的值為12=2,factorial(3) 的值為23=6,factorial(4) 的值為64=24,最後傳回值factorial(5) 為245=120。

注意:

1.為了防止遞迴呼叫無終止地進行,必須在函數內有終止遞歸呼叫的手段。常用的辦法是加條件判斷,滿足某種條件後就不再作遞歸調用,然後逐層返回。

2.遞迴呼叫不但難於理解,而且開銷很大,如非必要,不建議使用遞迴。很多遞歸呼叫可以用迭代(循環)來代替。

推薦教學:《

C影片教學

以上是C語言函數基礎有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板