實參可以是常量、變量、表達式、函數(shù)等任意類型,形參只能是變量,在被定義的函數(shù)中,必須指定形參的類型。
專注于為中小企業(yè)提供網(wǎng)站制作、成都做網(wǎng)站服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)張家港免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
形式參數(shù)(形參):定義函數(shù)名和函數(shù)體時需要用的參數(shù),目的是用來接收調(diào)用該函數(shù)時傳遞的參數(shù)。
實際參數(shù)(實參):傳遞給被調(diào)用函數(shù)的值。
通俗的來講,形參就像物理計算中的公式中的符號,比如Ω,A,V等,而實參就是在計算中的實際的數(shù)值。調(diào)用過程就是實現(xiàn)形參與實參的結(jié)合,把實參的值通過調(diào)用傳遞給形參,相當(dāng)于把具體的值代入公式進行計算。
擴展資料:
兩者的區(qū)別:
區(qū)別1
形參只能是變量,在被定義的函數(shù)中,必須指定形參的類型。
實參可以是常量、變量、表達式、函數(shù)等,
區(qū)別2
形參:沒有確定的值
實參:無論實參是何種類型的量,在進行函數(shù)調(diào)用時,它們都必須具有確定的值,以便把這些值傳送給形參。 因此應(yīng)預(yù)先用賦值,輸入等辦法使實參獲得確定值。
區(qū)別3
形參變量在未出現(xiàn)函數(shù)調(diào)用時,并不占用內(nèi)存,只在調(diào)用時才占用。調(diào)用結(jié)束后,將釋放內(nèi)存。
開辟內(nèi)存存儲數(shù)據(jù)
形參出現(xiàn)在函數(shù)定義中,在整個函數(shù)體內(nèi)都可以使用, 離開該函數(shù)則不能使用。實參出現(xiàn)在主調(diào)函數(shù)中,進入被調(diào)函數(shù)后,實參變量也不能使用。 形參和實參的功能是作數(shù)據(jù)傳送。發(fā)生函數(shù)調(diào)用時, 主調(diào)函數(shù)把實參的值傳送給被調(diào)函數(shù)的形參從而實現(xiàn)主調(diào)函數(shù)向被調(diào)函數(shù)的數(shù)據(jù)傳送。
1.形參變量只有在被調(diào)用時才分配內(nèi)存單元,在調(diào)用結(jié)束時, 即刻釋放所分配的內(nèi)存單元。因此,形參只有在函數(shù)內(nèi)部有效。 函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量。
2.實參可以是常量、變量、表達式、函數(shù)等, 無論實參是何種類型的量,在進行函數(shù)調(diào)用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應(yīng)預(yù)先用賦值,輸入等辦法使實參獲得確定值。
3.實參和形參在數(shù)量上,類型上,順序上應(yīng)嚴(yán)格一致, 否則會發(fā)生“類型不匹配”的錯誤。
4.函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數(shù)調(diào)用過程中,形參的值發(fā)生改變,而實參中的值不會變化。
有以下區(qū)別:
1、主體不同:實參在調(diào)用有參函數(shù)時,函數(shù)名后面括號中的參數(shù)為“實際參數(shù)”。形參不是實際存在變量,又稱虛擬變量。
2、目的不同:實參可以是常量、變量或表達式,無論實參是何種類型的量,在進行函數(shù)調(diào)用時,都必須具有確定的值,以便把這些值傳送給形參。
需要注意當(dāng)形參和實參不是指針類型時,在該函數(shù)運行時,形參和實參是不同的變量,他們在內(nèi)存中位于不同的位置,形參將實參的內(nèi)容復(fù)制一份,在該函數(shù)運行結(jié)束的時候形參被釋放,而實參內(nèi)容不會改變。
C語言中:函數(shù)的形參中:如果形參在函數(shù)調(diào)用前必須確定其值,稱這樣的形參為函數(shù)的入口參數(shù),如果形參的值在函數(shù)調(diào)用結(jié)束后才能被確定,稱這樣的形參為函數(shù)的出口參數(shù)(例如指針形參所指向的變量的值在函數(shù)調(diào)用結(jié)束后才能被確定)
如本例:函數(shù)function()中第一個形參就是入口參數(shù),第二個參數(shù)就是出口參數(shù),為了讓其他人更容易看懂程序,所以參數(shù)中用IN和OUT表示,更通俗易懂,IN LPSTR和OUT LPVOID是一種類型,至于是什么類型,有可能是宏定義還有可能是別名還有可能是結(jié)構(gòu)體,這里代碼太少