一、什麼是函數算法
二、函數語法函數
三、函數聲明遞歸
四、函數調用原型
五、函數的形參與實參編譯器
六、return與exit關鍵字數學
七、遞歸函數it
一、什麼是函數io
• 函數就是一連串語句被組合在一塊兒,並指定了一個名字編譯
• 函數這個術語來自數學,但不徹底等同於數學class
–函數不必定有參數
–函數不必定要計算數值
• 函數是C語言的構建塊
二、函數語法
• 函數在使用步驟分爲三個步驟:聲明、定義、調用。
• 語法格式
返回值類型 函數名(參數){
...(函數體)(返回值);
}
三、函數聲明
• 正常來說,函數在使用前必定要聲明
• 因爲編譯器從上到下,因此下面的代碼調用上面的函數,不 須要聲明,但上面的代碼調用下面的函數,就必須聲明
• 聲明的格式,去掉函數體部分,保留 返回值類型 函數名(參 數);(函數的原型)
• 若是返回值類型不是int的話,最好使用函數聲明(函數原型)。
• void f();
函數聲明,能夠省略參數,省略參數表明能夠接受任意參數,如 果不須要參數,使用void關鍵字。void f(void);
四、函數調用
• 須要寫出函數名及其後的實際參數列表
• 實際參數用來給函數提供信息
• 實際參數不必定是變量,任何正確類型的表達式均可以
五、函數的形參與實參
• 函數的形參是在定義時使用的參數
int fa(int x) {
return x * x + 2 * x + 4;
}
• 函數的實參是調用此函數時須要傳入的參數
int main() {
int result = fa(10);//x = 10;
return 0;
}
六、return與exit關鍵字
• 調用函數時,須要函數的執行結果,這時就須要返回值類 型標識結果的類型,函數體內部須要使用return關鍵字,標識具體的函數結果(返回值)。
• 若是函數執行後,不須要結果,就定義函數的返回值類型 void(空),也就不須要return關鍵字。
• exit(0)是一個函數,用於退出整個程序 須要包含一個 stdlib.h
• return 能夠作爲返回值的關鍵字,終止當前函數的繼續執 行。
七、遞歸函數
• 遞歸算法
–遞歸的過程,通常經過函數或子函數實現
–遞歸方法:在函數或子函數內部,直接或間接調用本身的算法。
• 遞歸工做原理
遞歸有可能形成死循環或算法的複雜化。(運行次數變多)。因 此使用遞歸時,必須注意:
-必須有退出條件
-必須保存遞歸後,算法簡化
• 遞歸格式
int f1(int n) {
printf("f1(int n) %d\n",n);if (n==1) {
return 1;
}
return n*f1(n-1);
}