C語言文章更新目錄
C/C++學習資源(百度雲盤鏈接)
計算機二級資料(過級專用)
C語言學習路線(從入門到實戰)
編寫C語言程序的7個步驟和編程機制
C語言基礎-第一個C程序
C語言基礎-簡單程序分析
VS2019編寫簡單的C程序示例
簡單示例,VS2019調試C語言程序
C語言基礎-基本算法
C語言基礎-數據類型
C語言中的輸入輸出函數
C語言流程控制語句
C語言數組——一維數組
C語言數組——二維數組
C語言數組——字符數組
C語言中常用的6個字符串處理函數
精心收集了60個C語言項目源碼,分享給大家
對於一個C程序而言,它所有的命令都包含在函數內。每個函數都會執行特定的任務。有一個特別的函數,名稱爲main()——該函數是程序啓動後,第一個執行的函數。其他所有函數都是main()函數的子函數(或者與之相關聯的過程,例如回調函數),並且它們的函數名稱可以自己設定。每個函數都只能被定義一次。但一個函數可以根據需要被多次的聲明和調用。
函數的定義
C 語言中的函數定義的一般形式如下:
return_type function_name( parameter list )
{
body of the function
}
函數由一個函數頭和一個函數主體組成。下面列出一個函數的所有組成部分:
- 返回類型: 一個函數可以返回一個值。return_type 是函數返回的值的數據類型。有些函數執行所需的操作而不要返回值,在這種情況下,return_type 是關鍵字 void。
- 函數名稱: 這是函數的實際名稱。函數名和參數列表一起構成了函數簽名。
- 參數: 參數就像是佔位符。當函數被調用時,您向參數傳遞一個值,這個值被稱爲實際參數。參數列表包括函數參數的類型、順序、數量。參數是可選的,也就是說,函數可能不包含參數。
- 函數主體: 函數主體包含一組定義函數執行任務的語句。
下來看個示例:
int add(int a, int b){
int result;
rusult = a + b;
return result;
}
{}之間的內容則爲函數體。
函數的聲明和調用
在使用函數之前應該先聲明,事先通知編譯器該函數的類型:換句話說,一個聲明即是描述一個函數的接口。聲明至少應指明函數返回值的類型,如下例所示:
int add(int a, int b);
在函數聲明中,參數的名稱並不重要,只有參數的類型是必需的,因此下面也是有效的聲明:
int max(int, int);
創建 C 函數時,會定義函數做什麼,然後通過調用函數來完成已定義的任務。
當程序調用函數時,程序控制權會轉移給被調用的函數。被調用的函數執行已定義的任務,當函數的返回語句被執行時,或到達函數的結束括號時,會把程序控制權交還給主程序。
調用函數時,傳遞所需參數,如果函數返回一個值,則可以存儲返回值。
接下來我們再看一個示例:
#include <stdio.h>
/* 函數聲明 */
int max(int num1, int num2);
int main()
{
/* 局部變量定義 */
int a = 100;
int b = 200;
int ret;
/* 調用函數來獲取最大值 */
ret = max(a, b);
printf("Max value is : %d\n", ret);
return 0;
}
/* 函數返回兩個數中較大的那個數 */
int max(int num1, int num2)
{
/* 局部變量聲明 */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
運行結果如下:
函數調用這一塊我想着重說下遞歸調用
所謂遞歸,就是自己調用自己。C語言中函數可以直接或間接的調用自己,所謂的間接調用,是指在遞歸函數調用的下層函數中再調用自己,遞歸關係如下圖:
-
直接調用
-
間接調用
語法格式如下:
void recursion()
{
statements;
... ... ...
recursion(); /* 函數調用自身 */
... ... ...
}
int main()
{
recursion();
}
流程圖:
下來我們一起看一個關於函數遞歸調用的示例
//下面的實例使用遞歸函數生成一個給定的數的斐波那契數列:
#include <stdio.h>
int fibonaci(int i)
{
if(i == 0)
{
return 0;
}
if(i == 1)
{
return 1;
}
return fibonaci(i-1) + fibonaci(i-2);
}
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf("%d\t\n", fibonaci(i));
}
return 0;
}
函數運行結果:
關於函數今天就先介紹到這,後面繼續更新。。。
如果您覺得本篇文章對您有幫助,請轉發給更多的人
【C語言中文社區】是一個C語言/C++視頻教程、學習筆記、電子書、計算機二級資料等專注於C語言/C++編程學習者的乾貨知識分享平臺,精選深度文章,分享優秀乾貨類、技能類的學習資源,幫助學習中的你。