函式(Function)、傳值法、傳位址法、傳參考法
函式(Function)
- 通常由一個回傳型別(return type)、一個名稱、以及0或多個傳入參數組成
基本形式
type 函式名稱(傳入參數){
程式內容;
return 回傳結果;
}
備註:“回傳結果”的資料型別會與一開始定義的函式型別相同
函式呼叫
- 透過呼叫運算子'()'來執行函式,裡面放入引數(argument)來初始化函數,若有多個引數則由逗號(,)區隔
函式名稱(引數(argument));
備註:每個引數的型別(type)都必須符合對應的函式參數
int main()
主程式
- 回傳型別:int
- 函式名稱:main
- 傳入參數:無
Void型別
沒有回傳值
- 函式的某些功能並不需要回傳值,所以型別就用Void
常見呼叫失敗的原因
例如(基本函式與呼叫):
- 回傳型別:int
- 函式名稱:sum
- 傳入參數:int a、int b
函式(兩數相加)
int sum(int a,int b){
return a+b;
}
呼叫函式( sum(a,b) )
sum(1,2);
Output
3
不同的傳入參數與引數
- 引數的功能在於初始化函數,參數在函式裡被更改,引數並不會跟著改變(除非使用傳位址法、傳參考法,直接對本身進行運算)
- 傳值法 ( call by value )
- 傳位址法 ( call by address )
- 傳參考法 ( call by reference )
例如1(傳值法):
傳入num的值,初始化 a = num
- 回傳型別:void
- 函式名稱:print
- 傳入參數:int a
Output
a = 10
num = 5
例如2(傳位址法):
傳入num的位置,使用間接運算子(*),取得該位址的值進行運算
- 回傳型別:void
- 函式名稱:print
- 傳入參數:int* a
Output
a = 10
num = 10
例如3(傳參考法):
傳入num的參考,num 的別名是a,對a進行運算就等於對num進行運算
- 回傳型別:void
- 函式名稱:print
- 傳入參數:int &a
Output
a = 10
num = 10
參考資料
[1]. C++Primer中文版-Stanley B. Lippman, Josée Lajoie, Barbara E. Moo著; 黃銘偉 譯; 碁峰出版; 2019/11/30。
延伸閱讀