2021-10-09|閱讀時間 ‧ 約 4 分鐘

C++ 新手教學9

函式(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);
sum(a,b)
Output
3

不同的傳入參數與引數

  • 引數的功能在於初始化函數,參數在函式裡被更改,引數並不會跟著改變(除非使用傳位址法、傳參考法,直接對本身進行運算)
  1. 傳值法 ( call by value )
  2. 傳位址法 ( call by address )
  3. 傳參考法 ( call by reference )
例如1(傳值法):
傳入num的值,初始化 a = num
  • 回傳型別:void
  • 函式名稱:print
  • 傳入參數:int a
傳值法,傳入int a
Output
a = 10 num = 5
例如2(傳位址法):
傳入num的位置,使用間接運算子(*),取得該位址的值進行運算
  • 回傳型別:void
  • 函式名稱:print
  • 傳入參數:int* a
傳位址法,傳入num的位置
Output
a = 10 num = 10
例如3(傳參考法):
傳入num的參考,num 的別名是a,對a進行運算就等於對num進行運算
  • 回傳型別:void
  • 函式名稱:print
  • 傳入參數:int &a
傳參考法,傳入int &a
Output
a = 10 num = 10

參考資料

[1]. C++Primer中文版-Stanley B. Lippman, Josée Lajoie, Barbara E. Moo著; 黃銘偉 譯; 碁峰出版; 2019/11/30。

延伸閱讀

下一篇:
上一篇:
目錄:
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.