Ⅰ c語言中實參和形參分別存放在內存的什麼位置
形參只是一個符號,不會分配具體的空間的..當函數被調用的時候,具體給出的參數,也就是實參,其實是一份拷貝..它的內存空間在該函數的堆中進行分配.比如 定義函數 int add(int ,int); 在主函數中 定義變數 int x, y..調用函數 add(x, y);那麼在函數add的堆中會分配出空間,來保存實參x y的拷貝..而主函數中的 x y 是在主函數的堆中保存的... 不曉得有沒有說明白..呵呵
Ⅱ C語言中實參和形參是怎麼回事求詳細解答!!!
從
語法意義
上說,
形參
是
函數
內部為外部傳進來的
參數
取的名稱,而
實參
則是函數外部准備傳給函數的參數的名稱,這兩個是相對的從
內存
意義上說,形參是函數內的內存空間,實參是函數外的內存空間,每次調用都要將實參從函數外空間復制到函數內內存空間,因此改變形參的值對於實參一點影響也沒有。
形參:全稱為"形式參數"是在定義函數名和
函數體
的時候使用的參數,目的是用來接收調用該函數時傳如的參數.
實參:全稱為"實際參數"是在調用時傳遞個該函數的參數.
形參和實參的類型必須要一致,或者要符合隱含轉換規則,
當形參和實參不是指針類型時,在該函數
運行時
,形參和實
參是不同的
變數
,他們在內存中位於不同的位置,形參將實
參的內容復制一份,在該函數運行結束的時候形參被釋放,
而實參內容不會改變.
而如果函數的參數是指針類型變數,在調用該函數的
過程
中,傳個函數的是實參的地址,在函數體內部使用的也是
實參的地址,即使用的就是實參本身.所以在函數體內部
可以改變實參的值.
Ⅲ 怎樣定義C語言函數中的參數(實參、形參)
不知道函數調用原理的話,很難說得清楚的。粗略的說在C中函數其實是分成三個部分,分別是聲明、實現和使用。聲明就是告訴C有這么個函數,實現就是這個函數的完整代碼,使用則是調用這個函數幫你做運算或者是做事情。為了讓函數能做更多的事情,就需要一種方法能向函數傳遞性息,最可靠、最方便的方法就是參數傳遞,C就是這樣做的。參數傳遞也不是簡單的一件事情,首先在調用者和被調用者之間得有個約定,大家約定好了參數放什麼地方,如何使用,這個就稱為調用約定。現在我們回過頭來看什麼叫實參和形參。由上面的敘述可以看到,函數其實有一定的獨立性的,參數是在調用約定下放在指定地方供函數使用的,在我們實現函數的時候,實際的參數是什麼我們還不知道,但我們知道有多少參數,分別是什麼數據類型的和放在什麼地方(順序),這個是由調用約定來保證的。我們知道的這些就是形式的或者說是邏輯的,我們在實現函數(編寫函數體)的時候需要給他們命名,以便使用,這些在函數實現的時候命名的形式上的參數就是形式參數,簡稱形參。而在實際調用發生的時候,調用者會將實際的參數放在約定好了的地方,這個實際參數簡稱實參。函數被運行的時候實參和形參形成了一一對應,對形參的操作就變成了對實參的操作。
對調用約定還有需要說明的就是,現在常用的調用約定都是傳值的,也就是說只是傳遞了一個副本,這樣做的結果就是你對形參的操作不會被傳遞出來。
是否可以解決您的問題?
Ⅳ 在c語言中形參與實參是如何定義的
在C語言中,形參即為形式參數。它在整個函數編譯的時候,沒有實際的數據賦於它,僅僅作於定義某個函數或者函數名。
而實參既為實際參數。顧名思義,在函數中,有一個特定的數據賦值給它,可以作於在函數中進行運算。
比如:
void
main()
{
int
a=1,b;
b=function(a);
//a作於在函數中進行運算,是實參
}
int
function(int
c)
//c作於定義function函數,是形參
{}
Ⅳ c語言函數中的實參和形參是什麼意思啊我老是看不懂 謝謝了
顧名思義,形參只是為了塑造一個函數的外形.比如max(x,y),這里x和y我們叫它形參.而我們有兩個數a=10,b=8,把a和b賦值給max函數的話,就可以比較a和b的最大值,那麼a,b在這里就叫做實參,是實際輸入的值.
你自己復制的不是很清楚嗎,解釋的很好.
Ⅵ 在C語言中,函數的形參和實參可以占同一個存儲單元,也可以占不同的存儲單元吧
形參只是實參的一個副本,即拷貝,它們不能公用存儲單元。
參數之間的傳遞分為數值傳遞與地址傳遞,如果是數值傳遞時,各自佔用不同的內存單元,如果是地址傳遞時,共用同一段內存單元。
函數調用時,主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。 形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的回內存單元。
形參只是實參的一個副本,即拷貝,它們不能公用存儲單元,不佔相同的空間。
(6)c語言函數中實參的位置擴展閱讀:
函數調用過程
1、函數的形參列於函數聲明中,在函數定義的函數體內使用。在未出現函數調用時,形參不佔內存中的存儲單元;當函數調用時,形參(任何種類的)是一類將被填充的空白或是佔位符。
2、將實參的值傳遞給形參。當函數被調用時,實參列在函數名後面的括弧里。執行函數調用時,實參被傳遞給形參。
3、在執行函數期間,由於形參已經有值,可以利用其進行相關運算。
4、通過return語句將函數值帶回到主調函數。
5、調用結束,形參單元被釋放。實參單元仍保留並維持原值(值傳遞)。
Ⅶ C語言函數中的形參和實參分別是指什麼
形參出現在函數定義中,在整個函數體內都可以使用, 離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變數也不能使用。 形參和實參的功能是作數據傳送。發生函數調用時, 主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
1.形參變數只有在被調用時才分配內存單元,在調用結束時, 即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。 函數調用結束返回主調函數後則不能再使用該形參變數。
2.實參可以是常量、變數、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。
3.實參和形參在數量上,類型上,順序上應嚴格一致, 否則會發生「類型不匹配」的錯誤。
4.函數調用中發生的數據傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
Ⅷ 在C語言中,什麼是函數的行參和實參他們分別有什麼作用分別出現在什麼位置
比如float fun(int i,int j);是函數原型聲明,float fun(int,int);可以不寫變數名,是形參;
然後x=fun(i,j);是函數調用,傳遞給他的是實參。
在下來float fun(int a,int b){……} 是函數定義,參數是形參。
Ⅸ c語言函數的實參
形參是一個變數,是在引用的函數中的變數
實參也是一個變數.是在主函數中的變數.
兩個變數的使用范圍不同.
形參只在子函數中使用,實參可以在主函數中使用.
上面,實參寫成100,是說,在形參用100代進去.
而形參只能是一個變數,用來吸收實參傳遞進來的值,以輸出結果.