C語言是由許許多多函數組成的.函數分為聲明和實現,在實際開發中兩者是分開兩個文件來保存的,函數名.h/函數名.c,兩個文件的函數名要一致.
函數的定義:是一段具備特定功能的程序段.
作用:1.提高了代碼的復用性,減少代碼量.
2.當需求變更,不需要去改很多代碼.
目的:把一個功能封裝起來,方便以后調用.
函數名后面()里的每一個變量我們稱之為形式參數,簡稱形參
調用函數時傳入的參數,我們稱之為實際參數,簡稱實參,他可以是常量,變量或者其他結構數據類型及表達式.函數也是可以作為實參傳遞的,此時傳遞的是函數的返回值,所以,能做實參的函數必須是有返回值的.
函數有:
1.有參數有返回值
2.有參數沒有返回值
3.沒有參數有返回值
3.沒有參數沒有返回值
規定:沒有返回值的函數統一用void來定義.
注意:C語言中函數可以不寫返回值類型,系統會默認返回值類型是int類型
函數的定義格式:
返回值類型函數名稱(形參列表1,形參列表2....)//形參是函數被調用的時候才會分配存儲空間
{
函數體; //語句; ...
}
例如:int getMax(int a, int b)
{
int max = a > b ? a :b;
return max;
}
---------------------------
函數要使用,必須要在main函數之前有聲明,如果函數定義在main函數之前,就沒有聲明的必要了,函數要調用才會被執行
函數聲明:函數名(形參1,形參2…); ,如int getMax(int,int);形參的變量名省略不寫.
函數調用格式總結為:函數名(實際參數); ,如:int getMax(實參1,實參2…);多個實參用逗號隔開.若這個函數是有返回值的,要定義一個變量來接收返回值.
定義函數有4個確定
1.確定函數名稱(有意義的)
2.確定形參類型
3.確定返回值(這個函數是否有返回值,沒有的話就不用)
4.確定返回值類型(函數名字前面那個數據類型)
-----------------------------------------
函數中的return有2個作用
(有返回值的函數一定要有return,void函數可以有也可以沒有,一般都不寫,要寫就寫return;這樣寫了也不會報錯)
1.返回值給調用者
2.正常結束函數
3.提前結束函數
--------------------------------------
函數的注意點:
1.形參的個數和實參的個數必須一致
2.如果形參是基本數據類型(int float double char),是值傳遞,
修改函數內形參的值,一般不會影響函數外面的實參(有例外的情況),
但是會影響有返回值的結果.
3.返回值跟返回值類型不一致的時候,系統會進行隱式轉換.
4.函數不能嵌套,能互相調用.
5.函數名稱不能相同,不要以為形參類型不同就可以了,一樣不行的.
6.如果一個函數的返回值類型是int類型的,可以沒有聲明,也不會報錯.