1樓:匿名使用者
形參:全稱為"形式引數"是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳如的參慶棗數。
實參:全稱為"實際引數"是在呼叫時傳遞個該函豎答數的引數。
形參和實參的型別必須要一致,或者要符合隱含轉換規則,當形參和實參不是指標型別時,在該函式執行時,形參和實參是不同的變數,他們在記憶體中位於不同的位置,形參將實參的內容複製乙份,在該函式執行結束的時候形參被釋放,而實參內容不會改變。
而如果函式的引數是指標型別變數,在呼叫該函式的過程中,傳個函式的是實參的位址,在函譽纖拆數體內部使用的也是實參的位址,即使用的就是實參本身。所以在函式體內部可以改變實參的值。
給你乙個很簡單的例子:
int f(int b) /b為形參*/
return b;}
main()
int a=1;
printf("%d",f(a));a為實參*/
2樓:匿名使用者
你宣告函式的時候括弧裡面的是形參。呼叫函式的時候,括弧裡面的是實參。
c語言中,形參和實參是什麼意思?有什麼區別?
3樓:匿名使用者
形參就是形式引數,用乙個變數代表大家。實參就是實際引數,用乙個 確切的數值代替形式引數,可以是表示式。實際引數與形式引數的引數個數、型別和順序都應一樣,如果不一樣的話,系統會強制轉換,這樣會造成資料的丟失。
實 參向形參的傳遞是值的傳遞。
這個值就是對實參的表示式進行計算的結果,它可以是常量值、變數值、陣列元素、函式值等。如果實參是陣列名了,那麼它傳送的就是位址的值了。比如:
double power(double x ,int n)定義乙個雙精度引數。
power(,5) 呼叫。
x n 是形參,,5是實參。如果上面定義的是整形 double power(int x ,int n),下面呼叫的是power(,5)那麼實參中會被轉換成3,一部分資料丟失了。
4樓:匿名使用者
在定義函式時,函式名後面括號中的變數名稱為「形式引數」,簡稱「形參」;在主函式中呼叫乙個函式時,函式名後面括號中的引數(可以是乙個表示式)稱為「實際引數」(簡稱「實參」)。在主函式里的是實參,在子函式里的是形參。因為在真正執行的時候是把實參傳遞給形參來執行的,所以實參才是實際的引數。
我舉個簡單例子,比如:int jjj(int a, int b)void main()
a、b是形參,x和y是實參。
5樓:匿名使用者
形參,全稱為"形式引數"是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳遞的引數。
實參,可以是常量、變數、表示式、函式等, 無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值, 以便把這些值傳送給形參。
6樓:陸妙之馬巍
呼叫函式時是實參,因為它是具體的數值;
被調函式中是形參(可以理解為變數或容量),因為它要接受不同的資料;
7樓:淡紹蔣昶
形式引數和實際引數。
函式的引數分為形參和實參兩種。在本小節中,進一步介紹形參、實參的特點和兩者的關係。形參出現在函式定義中,在整個函式體內都可以使用,離開該函式則不能使用。
實參出現在主調函式中,進入被調函式後,實參變數也不能使用。形參和實參的功能是作資料傳送。發生函式呼叫時,主調函式把實參的值傳送給被調函式的形參從而實現主調函式向被調函式的資料傳送。
函式的形參和實參具有以下特點:
1.形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只有在函式內部有效。函式呼叫結束返回主調函式後則不能再使用該形參變數。
2.實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。
3.實參和形參在數量上,型別上,順序上應嚴格一致,否則會發生型別不匹配」的錯誤。
4.函式呼叫中發生的資料傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。
因此在函式呼叫過程中,形參的值發生改變,而實參中的值不會變化。
例】可以說明這個問題。
main()
ints(int
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語言中形參和實參的區別?
我簡單描述一下 c語言傳遞引數機構是這樣的 非指標類的資料傳遞引數時傳數值,指標類資料傳遞引數時傳地址 這裡陣列名也算指標 比如int max int a,int b 這時候如果呼叫這個函式max x1,x2 僅僅將x1和x2的數值傳遞給函式max,a與x1佔有不同的記憶體區域 int max in...
c語言中形參和實參是什麼意思?有什麼區別
舜茵戰韶容 引數傳遞主要用於模組化程式設計中。如果不瞭解引數傳遞是無法編寫出正確的呼叫函式的。形參就是形式引數,用一個變數代表大家。實參就是實際引數,用一個 確切的數值代替形式引數,可以是表示式。實際引數與形式引數的引數個數 型別和順序都應一樣,如果不一樣的話,系統會強制轉換,這樣會造成資料的丟失。...
c語言說形參不能改變實參的值,為什麼這個賦值語句可以
因為是在傳地址,值傳遞時候就不能改變實慘值了 cpystr函式中的形參是字元指標,而字元指標並沒有改變,只是字元指標指向的記憶體空間的值發生改變。 因為你的引數傳遞的是指標,那麼這個引數就是實參 不是你所說的形參。 它改變的時 p1,而不是p1自己。p1和p1不是一個東西 你這個引數用的都是地址 指...