主要内容:函數(重要,要求掌握)
一、函數的定義
什麼是函數:函數就是具有特定功能的代碼塊
通俗的說就是:一連串語句組合在一起的代碼塊的封裝,然後給它們起了一個名字
好處:節省開發效率,省去重複代碼塊的編寫,大大的簡化了程式
函數分為:
庫函數:系統提供好的函數(如标準的輸入輸出函數)
自定義函數:程式員自己編寫的執行特定功能的函數
函數的定義:
傳回值類型 函數名(參數)// 傳回值類型有:void、int、char、float...
{
語句
return 傳回值
}
根據傳回值類型可以分為:
void hello(void) / / 無參數無傳回值
printf(" Hello,My name is ");
void hello (void)/ / 無參數有傳回值
return 33;
根據參數類型可以分為:
int max(int a, int b)/ / 有參數有傳回值
return a > b ? a : b ;
void printNumber(int x)/ / 有參數無傳回值
printf(" number = : %d " , x );
函數的傳回值成為函數的值,隻能通過return傳回給主調函數
一個函數隻能有一個傳回值
函數即使沒有傳回值也可以使用return結束函數的執行,return後面的語句不再執行
形參、實參
形參:出現在函數定義中的參數
實參:出現在函數調用中的參數
注意:函數調用中,形參會拷貝實參内容,傳遞到函數中經過函數體的執行後,傳回值到main函數中
二、函數的聲明
一個嚴格的函數通常包括三個部分
1:函數的聲明:意思就是告訴計算機我定義了一個函數(如果函數的定義在主調函數之前可省略不寫,如果 在後面,必須寫函數的聲明,否則程式無法運作)
2:函數的定義:編寫函數體
3:函數的調用:在main函數中調用函數
規範的按照順序編寫函數
函數的聲明與定義一般寫在源檔案的xxx.h、xxx.m檔案中
xxx.h(頭檔案):主要存放函數的聲明
xxx.m(實作檔案):主要存放函數的實作(實作函數功能的代碼塊)
使用時要再源檔案的入口函數(main函數)之前寫上 # import " 頭檔案(xxx.h) "
三、函數中,數組作為參數
數組元素作為參數時與普通變量一樣
數組作為參數,把數組名傳入(即數組的首位址)此時形參和實參的記憶體位址是同一段
四、函數的嵌套使用
C語言不允許函數嵌套定義,但是允許函數嵌套使用
遞歸函數
C語言允許函數實作體内再次調用函數本身,這種調用方式成為遞歸調用,這個函數稱為遞歸函數
階乘
就是運用遞歸函數
注意:遞歸函數一定要有出口
五、變量的作用域
即變量的有效範圍
分為
全局變量:定義在函數體外的變量
局部變量:定義在函數體内部的變量