美劇《小鬼當家》劇照
共1925字,閱讀約需5分鐘;概述函式宣告由函式返回型別、函式名和參數列構成。這三個元素被稱為函式宣告(function declaration)或函式原型(function prototype)。乙個函式可在乙個檔案中被宣告多次。01函式原型由函式返回型別、函式名以及參數列構成。函式原型描述的是函式的介面,它詳細描述了呼叫函式時需要提供的引數的型別和個數,以及函式返回值的型別。
02
函式返回型別可以是預定義型別(如int或double)、復合型別(如int&或double*)、使用者定義型別(如列舉、類或void,後者意指函式不返回值)。
#include #include class date;bool look_up(int *, int);double calc(double);int count(const string &, char);date& calendar(const char*);void sum(vector&, int);
int[10] foo_bar(); //非法: 陣列不能作返回型別int *foo_bar(); //ok: 指向陣列的第乙個元素的指標
list foo_bar(); //ok: 返回型別是char的list
const is_equal(vector v1, vector v2); //錯誤: 沒有返回型別const bool is_equal(vector v1, verctor v2); //ok: 返回型別已被指定
函式的參數列不能省略。沒有任何引數的函式可以用空參數列或含有單個關鍵字void的參數列來表示。
int fork(); //隱式的void參數列int fork(void); //等價宣告
int manip(int v1, v2); //錯誤int manip(int v1, int v2); //ok
void print(int *array, int size);
ps:在c++中,兩個函式可能同名但參數列不同,這種函式被稱為過載函式(overloaded function)。參數列稱為函式的符號特徵(signature),因為它被用來區分函式的不同例項。
04引數傳遞
① 函式呼叫時傳送給形參的實參必須與形參三個一致型別、個數、順序② 引數傳遞有兩種方式傳值方式【引數為整型、實型、字元型等】傳位址05傳值方式:
把實參的值傳送給函式區域性工作區相應的副本中,函式使用這個副本執行必要的功能。函式修改的是副本的值,實參的值不變。
#include void swap(float m, float n)
void main()
06傳位址方式--指標變數做引數
#includevoid swap(float *m , float *n)
void main()
07傳位址方式--陣列名做引數
#includevoid sub(char b)void main()
08傳位址方式--引用型別做引數
先來個自問自答:
王火鍋:李大軍,你來說說什麼是引用?
李大軍:(⊙o⊙)…它用來給乙個物件提供乙個替代的名字。
王火鍋:答得很好嘛!
#includevoid main()
j是乙個引用型別,代表i的乙個替代名
i值改變時,j的值也跟著改變,所以會輸出i=7,j=7
09
引用型別做形參的三點說明:
① 傳遞引用給函式與傳遞指標的效果是一樣的,形參變化實參也發生變化。
② 引用型別做形參,在記憶體中並沒有產生實參的副本,它直接對實參操作;而一般變數做引數,形參與實參就占用不同的儲存單元,所以形參變數的值是是參變數的副本。因此,當引數傳遞的資料量較大時,用引用比用一般變數傳遞引數的時間和空間效率都好。
③ 指標引數雖然也能達到與使用引用的效果,但在被調函式中需要重複使用「*指標變數」的形式進行運算,這很容易產生錯誤且程式的閱讀性較差;另一方面,在主調函式的呼叫點處,必須用變數的位址作為實參。
end
函式傳引數 python 函式引數
1.位置引數 最熟悉的一種引數形式,優點 簡單。缺點 傳遞引數不夠靈活 2.預設引數 優點 提高了 的復用性 缺點 容易產生二義性 注意事項 一是必選引數在前,預設引數在後。二是如何設定預設引數。當函式有多個引數時,把變化大的引數放前面,變化小的引數放後面。變化小的引數就可以作為預設引數。def p...
C 中帶預設引數的函式定義及使用總結
對於帶引數列表的函式,必須從右向左新增預設值 對於帶引數列表的函式,必須從右向左新增預設值,也就是說,要為某個引數設定預設值,則必須為它右邊的所有引數提供預設值。範例 int fun1 int n,int m 4,int j 5 正確 intfun2 int n,int m 6,int j 錯誤 i...
C 中帶預設引數的函式定義及使用總結
對於帶引數列表的函式,必須從右向左新增預設值 對於帶引數列表的函式,必須從右向左新增預設值,也就是說,要為某個引數設定預設值,則必須為它右邊的所有引數提供預設值。範例 int fun1 int n,int m 4,int j 5 正確 int fun2 int n,int m 6,int j 錯誤 ...