iOS 階段學習第七天筆記(函數、遞歸)


 iOS學習(C語言)知識點整理筆記

一、函數

 1)概念:具有特定功能的代碼塊的封裝

 2)函數的定義: 函數類型+函數名(形參列表)

     函數類型 函數名(形參類型1  形參名1,形參類型2   形參名2.....){

            函數體;//函數的實現

     }

 3)函數名要符合標示符的定義

 4)函數的返回類型可為空,為空用void;也可以是其他數據類型。

 5)void函數的調用:函數名(); void類型不能用任何類型去接收。

 6)int 類型函數的調用:定義int類型的數據去接收函數的返回值,例如: int sum=add(x,y); 有時候也可以忽略      返回值

 7)return 函數的返回 ,void函數的return語句可以省略也可以return 空,return語句可以有多條,以執行到的第一句為准。

 8)非void的其他類型,return 表達式類型要和定義的類型匹配

 9)返回類型與接收類型不匹配時不一定會報錯,但會造成精度的損失,例如:int類型的函數用char類型接收

10)函數的好處:將不同的功能實現封裝起來,容易閱讀和維護;便於分工,調用的人可以不關心具體的實現。

11)函數使用的注意點:

    1、函數名要言之有物,名字和功能一致。

    2、接口要精簡(形參,返回值)

    3、實現的功能要單一,不要混雜。

    4、對外的函數接口要由詳細的注釋

12)局部變量:從變量定義的位置開始到定義所在的方法體的“}”結束

13)函數運行的過程:

      1、給形參開辟空間

      2、實際參數給形式參數傳值

      3、形式參數參與運算

      4、return 的時候形參銷毀

14)全局變量:定義在方法體外面的變量,優點所有函數都能訪問,缺點所有函數都能修改不安全。

15).c文件寫方法的實現;.h文件放函數的聲明。

16)函數的聲明: 函數返回類型   函數名(形參類型1  形參名1,形參類型2  形參名2....)。

17)函數在main后面定義,但是必須要在main之前聲明。

18)頭文件存放內容:

    1、函數的聲明

    2、類型定義 #typedef

    3、宏定義 #define  

19)函數都是平級的可以相互調用,也可以自己調用自己。

 

二、遞歸

1)概念:函數自己調用自己的一個過程

2)遞歸的優點是使代碼結構層次更清晰使程序更簡潔,缺點是占用資源太多,可能造成堆棧溢出。

3)使用遞歸算法 計算斐波拉契數列

實現代碼:

 1 int fblq(int n){
 2    if(n==1||n==2)
 3       return 1;
 4    else 
 5      return fblq(n-1)+fblq(n-2);
 6 }
 7 int main(){
 8   int len=20;
 9   for (int i=1; i<=len; i++) {
10     printf("%d ",fblq(i));
11   }
12   return 0;
13 }

 4)使用遞歸求兩個數的最大公約數

實現代碼:

 1 int ComDiv(int x,int y){
 2     if(x%y==0)
 3        return y;
 4      else  
 5        return ComDiv(y,x%y);
 6 }
 7 
 8 int main(){
 9    printf(“%d”, ComDiv(28,35));
10    return 0;
11 }

 5)使用遞歸算法實現猴子吃桃問題的統計

實現代碼:

1 int MonkeyEatPeach(int day){
2     if(day==9)
3       return 1;
4 
5     printf("day=%d\n",day);
6 
7     return  2*MonkeyEatPeach(day+1)+2;
8 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM