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

C語言函數基礎有哪些?

Jun 11, 2020 pm 04:36 PM
c 基礎知識


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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

C語言中的常數是什麼,可以舉例嗎? C語言中的常數是什麼,可以舉例嗎? Aug 28, 2023 pm 10:45 PM

C語言中的常數是什麼,可以舉例嗎?

VSCode和VS C++IntelliSense無法運作或拾取函式庫 VSCode和VS C++IntelliSense無法運作或拾取函式庫 Feb 29, 2024 pm 01:28 PM

VSCode和VS C++IntelliSense無法運作或拾取函式庫

遞歸程式在C++中找到陣列的最小和最大元素 遞歸程式在C++中找到陣列的最小和最大元素 Aug 31, 2023 pm 07:37 PM

遞歸程式在C++中找到陣列的最小和最大元素

修復Xbox錯誤代碼8C230002 修復Xbox錯誤代碼8C230002 Feb 27, 2024 pm 03:55 PM

修復Xbox錯誤代碼8C230002

中國東方航空宣布C919客機即將投入實際運營 中國東方航空宣布C919客機即將投入實際運營 May 28, 2023 pm 11:43 PM

中國東方航空宣布C919客機即將投入實際運營

C++程式列印數字的螺旋圖案 C++程式列印數字的螺旋圖案 Sep 05, 2023 pm 06:25 PM

C++程式列印數字的螺旋圖案

C語言中的void關鍵字的作用 C語言中的void關鍵字的作用 Feb 19, 2024 pm 11:33 PM

C語言中的void關鍵字的作用

23 年來首次,C# 獲得了 TIOBE 2023 年度程式語言獎 23 年來首次,C# 獲得了 TIOBE 2023 年度程式語言獎 Jan 11, 2024 pm 04:45 PM

23 年來首次,C# 獲得了 TIOBE 2023 年度程式語言獎

See all articles