深入理解实参和形参
深入理解實參和形參
實參(argument):
? 全稱為"實際參數"是在調用時傳遞給函數的參數. 實參可以是常量、變量、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。 ? ? ?
形參(parameter):
全稱為"形式參數" 由于它不是實際存在變量,所以又稱虛擬變量。是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳入的參數.在調用函數時,實參將賦值給形參。因而,必須注意實參的個數,類型應與形參一一對應,并且實參必須要有確定的值。
1)實參可以是任意類型的數據。
2)形參可以是變量,或缺省常量,不可以是表達式。
如果是缺省常量,只能定義在參數列表的后面。比如 int func(int a,int b=0)是正確的。
int func(int a=0,int b)是錯誤的。
根據實際需要可有可無。沒有形參時,圓括號也不可省;多個參數之間應用逗號分隔。參數包括參數名和參數類型。
形參的類型說明可有如下兩種格式:
?int max(int ?a,int b)/*形參的類型在形參表中直接說明*/
? ? { ?return (a>b?a:b);} ? ??
?或
? ?int max(a,b)
? ?inta,b; ? ? ? ? /*形參的類型在函數體前、函數名后說明*/
? ?{ return(a>b?a:b); }
前者為標準格式,后者為傳統格式,通常用前者。
形參和實參的區別
形參出現在函數定義中,在整個函數體內都可以使用, 離開該函數則不能使用。
實參出現在主調函數中,進入被調函數后,實參變量也不能使用。?
形參和實參的功能是作數據傳送。發生函數調用時, 主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
1.形參變量只有在被調用時才分配內存單元,在調用結束時, 即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。 函數調用結束返回主調函數后則不能再使用該形參變量。?
2.實參可以是常量、變量、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。?
3.實參和形參在數量上,類型上,順序上應嚴格一致, 否則會發生“類型不匹配”的錯誤。?
4.函數調用中發生的數據傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
5.當形參和實參不是指針類型時,在該函數運行時,形參和實參是不同的變量,他們在內存中位于不同的位置,形參將實參的內容復制一份,在該函數運行結束的時候形參被釋放,而實參內容不會改變。
而如果函數的參數是指針類型變量,在調用該函數的過程中,傳給函數的是實參的地址,在函數體內部使用的也是實參的地址,即使用的就是實參本身。所以在函數體內部可以改變實參的值。 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
實參(argument):
? 全稱為"實際參數"是在調用時傳遞給函數的參數. 實參可以是常量、變量、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。 ? ? ?
形參(parameter):
全稱為"形式參數" 由于它不是實際存在變量,所以又稱虛擬變量。是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳入的參數.在調用函數時,實參將賦值給形參。因而,必須注意實參的個數,類型應與形參一一對應,并且實參必須要有確定的值。
1)實參可以是任意類型的數據。
2)形參可以是變量,或缺省常量,不可以是表達式。
如果是缺省常量,只能定義在參數列表的后面。比如 int func(int a,int b=0)是正確的。
int func(int a=0,int b)是錯誤的。
因為在調用函數時需要對形參分配內存空間以用于接收實參傳遞的值,所以形參不可以是表達式
根據實際需要可有可無。沒有形參時,圓括號也不可省;多個參數之間應用逗號分隔。參數包括參數名和參數類型。
形參的類型說明可有如下兩種格式:
?int max(int ?a,int b)/*形參的類型在形參表中直接說明*/
? ? { ?return (a>b?a:b);} ? ??
?或
? ?int max(a,b)
? ?inta,b; ? ? ? ? /*形參的類型在函數體前、函數名后說明*/
? ?{ return(a>b?a:b); }
前者為標準格式,后者為傳統格式,通常用前者。
形參和實參的區別
形參出現在函數定義中,在整個函數體內都可以使用, 離開該函數則不能使用。
實參出現在主調函數中,進入被調函數后,實參變量也不能使用。?
形參和實參的功能是作數據傳送。發生函數調用時, 主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
1.形參變量只有在被調用時才分配內存單元,在調用結束時, 即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。 函數調用結束返回主調函數后則不能再使用該形參變量。?
2.實參可以是常量、變量、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。?
3.實參和形參在數量上,類型上,順序上應嚴格一致, 否則會發生“類型不匹配”的錯誤。?
4.函數調用中發生的數據傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
5.當形參和實參不是指針類型時,在該函數運行時,形參和實參是不同的變量,他們在內存中位于不同的位置,形參將實參的內容復制一份,在該函數運行結束的時候形參被釋放,而實參內容不會改變。
而如果函數的參數是指針類型變量,在調用該函數的過程中,傳給函數的是實參的地址,在函數體內部使用的也是實參的地址,即使用的就是實參本身。所以在函數體內部可以改變實參的值。 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
- 上一篇: float x 与“零值”比较的if语句
- 下一篇: 如何研读一篇论文?