本文轉載:https://blog.csdn.net/qq_33187168/article/details/50346465函數
形式參數:形參是函數被調用時用於接收實參值的變量。spa
根據實際須要無關緊要。沒有形參時,圓括號也不可省;多個參數之間應用逗號分隔。參數包括參數名和參數類型。.net
形參的類型說明可有以下兩種格式:指針
int max(int a,int b)/*形參的類型在形參表中直接說明*/blog
{ return (a>b?a:b);} 內存
或變量
int max(a,b)qq
inta,b; /*形參的類型在函數體前、函數名後說明*/數據
{ return(a>b?a:b); }di
前者爲標準格式,後者爲傳統格式,一般用前者。
形參和實參的區別
形參出如今函數定義中,在整個函數體內均可以使用, 離開該函數則不能使用。
實參出如今主調函數中,進入被調函數後,實參變量也不能使用。
形參和實參的功能是做數據傳送。發生函數調用時, 主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
1.形參變量只有在被調用時才分配內存單元,在調用結束時, 即刻釋放所分配的內存單元。所以,形參只有在函數內部有效。 函數調用結束返回
主調函數後則不能再使用該形參變量。
2.實參能夠是常量、變量、表達式、函數等, 不管實參是何種類型的量,在進行函數調用時,它們都必須具備肯定的值, 以便把這些值傳送給形
參。 所以應預先用賦值,輸入等辦法使實參得到肯定值。
3.實參和形參在數量上,類型上,順序上應嚴格一致, 不然會發生「類型不匹配」的錯誤。
4.函數調用中發生的數據傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 所以在函數調用過程當中,形參的值
發生改變,而實參中的值不會變化。
5.當形參和實參不是指針類型時,在該函數運行時,形參和實參是不一樣的變量,他們在內存中位於不一樣的位置,形參將實參的內容複製一份,在該
函數運行結束的時候形參被釋放,而實參內容不會改變。
而若是函數的參數是指針類型變量,在調用該函數的過程當中,傳給函數的是實參的地址,在函數體內部使用的也是實參的地址,即便用的就是實參
自己。因此在函數體內部能夠改變實參的值。