1、函式的巢狀呼叫
在乙個函式裡呼叫另乙個函式
#define _crt_secure_no_warnings 1
#includevoid new_line()
void three_line()
}int main()
2、函式的鏈式訪問
把另乙個函式的返回值當作另乙個函式的引數
#define _crt_secure_no_warnings 1
#include#include//strlen()和strcat()函式要用的標頭檔案
int main()
3、函式的宣告和定義
函式宣告:包含 函式返回值型別 函式名 (引數型別 引數名)
要求:先宣告後使用。函式宣告一般放在標頭檔案中。
函式定義:指函式的具體實現,交代函式的功能
text.h:放置函式的宣告
#ifndef _text_h_
#define _text_h_
//函式宣告
int add(int x,int y)
#endif //_text_h_
text.c:放置函式的實現
#include "text.h"
//函式的實現
int add(int x,int y)
4、函式的遞迴
在乙個函式中呼叫自身函式
主要思考方向:大事化小,當小到一定程度時,可以確定其值,
遞迴連個必要條件:存在限制條件,當滿足此條件時,遞迴便結束
每次遞迴呼叫後都越來越接近這個結束遞迴的條件
練習
1、接受乙個整型值(無符號),按照順序列印他的每一位
#define _crt_secure_no_warnings 1
#include#includevoid print(int n)
printf("%d ", n % 10);
}int main()
2、不建立臨時變數,求字串長度
#define _crt_secure_no_warnings 1
#include#includeint strlen(const char* str)
else }
int main()
5、遞迴與迭代
遞迴求 n!
#define _crt_secure_no_warnings 1
#include#includeint factorial(int n)
else }
int main()
遞迴求斐波那契數列中第n個斐波那契數
#define _crt_secure_no_warnings 1
#include#includeint fib(int n)
else }
int main()
//在這裡運用了遞迴呼叫,但是當數字太大時,效率會很低,這是由於,每呼叫一次函式,就需要開闢出一塊空間,而每呼叫結束一次,就要釋放一次空間,使得空間成本和時間成本都變得很大。
迭代求n!
#define _crt_secure_no_warnings 1
#include#includeint factorical(int n)
return result;
}int main()
迭代求第n個斐波那契數
#define _crt_secure_no_warnings 1
#includeint fib(int n)
return result;
}int main()
雖然迭代法比遞迴效率更高,但遞迴更易理解,**更簡單,迭代**更複雜, 元小白(猿小白)高階日記 五(函式)
自定義函式 ret type fun name paral,ret type 返回值型別 fun name 函式名 paral 函式引數舉例 1 求兩個數中較大的數 define crt secure no warnings 1 include int max int x,int y else re...
元小白(猿小白)高階日記 三(for)
3 for for 表示式1 表示式2 表示式3 迴圈語句 表示式1 初始化部分,用於初始化變數 表示式2 條件判斷部分,用於判斷迴圈的終止 表示式3 調整部分,用於迴圈條件的調整例如 用for輸出0到10 define crt secure no warnings 1 include includ...
元小白(猿小白)高階日記 七(陣列)
陣列是一類相同元素的集合。一 一維陣列 1 陣列的建立 type t arr name const n type t 是指數組的元素型別 const n 是乙個常量表示式,用來指定陣列的大小,即元素個數 例如 int arr1 10 char arr2 30 float arr3 33 2 陣列的初...