c語言中實參和形參
『壹』 c語言中什麼是形參,什麼是實參
形參:全稱為「形式參數」是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳遞的參數。
形參的作用是實現主調函數與被調函數之間的聯系,通常將函數所處理的數據,影響函數功能的因素或者函數處理的結果作為形參。
實參:全稱為"實際參數"是在調用時傳遞給函數的參數,即傳遞給被調用函數的值。
實參可以是常量、變數、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。
(1)c語言中實參和形參擴展閱讀:
形參和實參的特點:
1、形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只在函數內部有效。函數調用結束返回主調用函數後則不能再使用該形參變數。
2、實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使參數獲得確定值。
3、實參和形參在數量上,類型上、順序上應嚴格一致,否則就會發生類型不匹配的錯誤。
4、在一般傳值調用的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數調用過程中,形參值發生改變,而實參中的值不會變化。而在引用調用的機制當中是將實參引用的地址傳遞給了形參,所以任何發生在形參上的改變實際上也發生在實參變數上。
參考資料來源:網路-形參
參考資料來源:網路-實參
『貳』 C語言中形參和實參可不可以完全一樣
答案肯定的——形參和實參可以完全一樣。
在程序執行的過程中,實參的作用域是主函數,只要程序沒有停止,實參一直有效;
形參是定義函數是引入的參數,系統只在該函數被調用時分配臨時內存,當自定義函數執行完後,用於臨時儲存形參的空間將被釋放。
所以即使形參和實參的類型,名字完全一樣,系統也能夠把它們區分開。即可以完全一樣。
註:解決這個疑問關鍵是要搞清楚變數作用域方面的內容。
『叄』 C語言中實參與形參的區別
形參出現在函數定義中,在整個函數體內都可以使用,離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變數不能使用。
形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。而實參在主調函數中已分配內存單元。
實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,都必須具有確定的值,以便把這些值傳送給形參。
實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配」的錯誤。
函數調用中發生的數據傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。
『肆』 c語言中形參和實參的區別
形式參數和實際參數
函數的參數分為形參和實參兩種。在本小節中,進一步介紹形參、實參的特點和兩者的關系。形參出現在函數定義中,在整個函數體內都可以使用,離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變數也不能使用。形參和實參的功能是作數據傳送。發生函數調用時,主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
函數的形參和實參具有以下特點:
1. 形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數後則不能再使用該形參變數。
2. 實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。
3. 實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配」的錯誤。
4. 函數調用中發生的數據傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
【例】可以說明這個問題。
main()
{
intn;
printf("inputnumber ");
scanf("%d",&n);
s(n);
printf("n=%d ",n);
}
ints(intn)
{
inti;
for(i=n-1;i>=1;i--)
n=n+i;
printf("n=%d ",n);
}
本程序中定義了一個函數s,該函數的功能是求∑ni的值。在主函數中輸入n值,並作為實參,在調用時傳送給s 函數的形參量n( 注意,本例的形參變數和實參變數的標識符都為n,但這是兩個不同的量,各自的作用域不同)。在主函數中用printf 語句輸出一次n值,這個n值是實參n的值。在函數s中也用printf 語句輸出了一次n值,這個n值是形參最後取得的n值0。從運行情況看,輸入n值為100。即實參n的值為100。把此值傳給函數s時,形參n的初值也為100,在執行函數過程中,形參n的值變為5050。返回主函數之後,輸出實參n的值仍為100。可見實參的值不隨形參的變化而變化。
『伍』 c語言中形參和實參的關系是什麼,詳細點
形參是實參的模板,你可以理解形參是佔位符.
而實參通過復制自己的值傳給函數的形參.
形參有了實參的值就可以參與函數運算了,因為實參只是賦值傳遞,所以函數里的對形參的操作不會影響到實參變數的值:-)
『陸』 c語言中,形參和實參是什麼意思有什麼區別
形式參數和實際參數
函數的參數分為形參和實參兩種。在本小節中,進一步介紹形參、實參的特點和兩者的關系。形參出現在函數定義中,在整個函數體內都可以使用,離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變數也不能使用。形參和實參的功能是作數據傳送。發生函數調用時,主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
函數的形參和實參具有以下特點:
1.
形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數後則不能再使用該形參變數。
2.
實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。
3.
實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配」的錯誤。
4.
函數調用中發生的數據傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。
因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
【例】可以說明這個問題。
main()
{
int
n;
printf("input
number\n");
scanf("%d",&n);
s(n);
printf("n=%d\n",n);
}
int
s(int
n)
{
int
i;
for(i=n-1;i>=1;i--)
n=n+i;
printf("n=%d\n",n);
}
本程序中定義了一個函數s,該函數的功能是求∑ni的值。在主函數中輸入n值,並作為實參,在調用時傳送給s
函數的形參量n(
注意,本例的形參變數和實參變數的標識符都為n,但這是兩個不同的量,各自的作用域不同)。在主函數中用printf
語句輸出一次n值,這個n值是實參n的值。在函數s中也用printf
語句輸出了一次n值,這個n值是形參最後取得的n值0。從運行情況看,輸入n值為100。即實參n的值為100。把此值傳給函數s時,形參n的初值也為100,在執行函數過程中,形參n的值變為5050。返回主函數之後,輸出實參n的值仍為100。可見實參的值不隨形參的變化而變化。
『柒』 c語言中形參和實參的區別
函數的形參和實參區別如下:
1. 形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數後則不能再使用該形參變數。
2. 實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。
3. 實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配」的錯誤。
4. 函數調用中發生的數據傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
實參(argument):
全稱為"實際參數"是在調用時傳遞給函數的參數. 實參可以是常量、變數、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。
形參(parameter):
全稱為"形式參數" 由於它不是實際存在變數,所以又稱虛擬變數。是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳入的參數.在調用函數時,實參將賦值給形參。因而,必須注意實參的個數,類型應與形參一一對應,並且實參必須要有確定的值。
形式參數:形參是函數被調用時用於接收實參值的變數。
根據實際需要可有可無。沒有形參時,圓括弧也不可省;多個參數之間應用逗號分隔。參數包括參數名和參數類型。
『捌』 C語言中:形參和實參有什麼區別詳盡盡一點吧!謝謝!
定義函數時,函數名後面圓括弧中的各個參數叫做形參,調用函數時,函數名後面圓括弧中的參數叫做實參。要求實參與形參的數據類型、個數、順序必須一致。例如
int
fun(int
*a,int
n);
//
其中
*a和n是形參
voia
main()
{
........
int
arr[20];
int
N;
........
M
=
fun(arr,N);
//
其中的
arr和N就是實參
........
}
『玖』 c語言中形參和實參是什麼意思有什麼區別
形參就是形式參數,用一個變數代表大家。實參就是實際參數,用一個 確切的數值代替形式參數,可以是表達式。實際參數與形式參數的參數個數、類型和順序都應一樣,如果不一樣的話,系統會強制轉換,這樣會造成數據的丟失。實 參向形參的傳遞是值的傳遞。
這個值就是對實參的表達式進行計算的結果,它可以是常量值、變數值、數組元素、函數值等。如果實參是數組名了,那麼它傳送的就是地址的值了。比如:
double power(double x ,int n)定義一個雙精度參數
power(3.0,5) 調用
x n 是形參,3.0,5是實參。如果上面定義的是整形 double power(int x ,int n),下面調用的是power(3.3,5)那麼實參中3.3會被轉換成3,一部分數據丟失了。
『拾』 c語言中,形參和實參的區別是什麼
形參就是形式參數,用一個變數代表大家。實參就是實際參數,用一個
確切的數值代替形式參數,可以是表達式。實際參數與形式參數的參數個數、類型和順序都應一樣,如果不一樣的話,系統會強制轉換,這樣會造成數據的丟失。實
參向形參的傳遞是值的傳遞。
這個值就是對實參的表達式進行計算的結果,它可以是常量值、變數值、數組元素、函數值等。如果實參是數組名了,那麼它傳送的就是地址的值了。比如:
double
power(double
x
,int
n)定義一個雙精度參數
power(3.0,5)
調用
x
n
是形參,3.0,5是實參。如果上面定義的是整形
double
power(int
x
,int
n),下面調用的是power(3.3,5)那麼實參中3.3會被轉換成3,一部分數據丟失了。