函數的參數分為形式參數和實參數。在這壹節中,將進壹步介紹形式參數和真實參數的特點以及它們之間的關系。形參出現在函數定義中,可以在整個函數體中使用,但不能在沒有函數的情況下使用。自變量出現在主調函數中,進入調好的函數後不能使用自變量變量。形參和實參的作用是傳遞數據。當函數調用發生時,主調函數將實參數的值傳遞給被調用函數的形參數,從而實現主調函數到被調用函數的數據傳遞。
函數的形參和實參具有以下特征:
1.參數變量僅在被調用時分配內存單元,並在調用結束時釋放已分配的內存單元。因此,形參只在函數內部有效。函數調用結束返回到主音函數後,參數變量就不能再用了。
2.參數可以是常量、變量、表達式、函數等。無論實參是什麽樣的量,在進行函數調用時都必須有確定的值,以便將這些值傳遞給形參。因此,我們應該事先使用賦值、輸入等方法來得到實參數的確定值。
3.實參和形參在數量、類型和順序上要嚴格壹致,否則會出現“類型不匹配”的錯誤。
4.函數調用中的數據傳輸是單向的。也就是說,只能將實參的值傳遞給形參,而不能傳遞形參的值。因此,在函數調用過程中,形參的值會發生變化,而實參中的值不會發生變化。
壹個例子可以說明這個問題。
主()
{
int n;
printf("輸入數字\ n ");
scanf("%d ",& ampn);
s(n);
printf("n=%d\n ",n);
}
整數s(整數n)
{
int I;
for(I = n-1;我& gt=1;我-)
n = n+I;
printf("n=%d\n ",n);
}
這個程序中定義了壹個函數S,它的作用是求∑ni的值。在主函數中輸入n的值,調用時作為實參傳遞給S函數的形參n(註意本例中形參變量和實參變量的標識符都是n,只是兩個不同的量,作用域不同)。在main函數中,使用printf語句輸出壹次n的值,也就是自變量n的值,在函數S中,也使用printf語句輸出壹次n的值,也就是形參最終得到的n值0。從運行情況來看,n的輸入值是100。即參數n的值是100。當這個值傳遞給函數S時,形參n的初始值也是100,在函數執行過程中形參n的值變成了5050。返回主函數後,輸出參數n的值仍然是100。可以看出,實參數的值並不隨形參數的變化而變化。