元小白(猿小白)高階日記 六(函式呼叫方式)

2021-09-16 20:54:05 字數 2329 閱讀 9260

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 陣列的初...