什麼是函式的「形參」和「實參」,函式中什麼是實參什麼是形參

時間 2022-02-09 18:55:13

1樓:匿名使用者

形參出現在函式定義中,在整個函式體內都可以使用, 離開該函式則不能使用。實參出現在主調函式中,進入被調函式後,實參變數也不能使用。 形參和實參的功能是作資料傳送。

發生函式呼叫時, 主調函式把實參的值傳送給被調函式的形參從而實現主調函式向被調函式的資料傳送。

形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時, 即刻釋放所分配的記憶體單元。因此,形參只有在函式內部有效。 函式呼叫結束返回主調函式後則不能再使用該形參變數。

實參可以是常量、變數、表示式、函式等, 無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。

實參和形參在數量上,型別上,順序上應嚴格一致, 否則會發生「型別不匹配」的錯誤。

函式呼叫中發生的資料傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函式呼叫過程中,形參的值發生改變,而實參中的值不會變化。

2樓:抱琴弄月

形參是函式申明或者是定義的時候,比如說int f(int i) i就是形參,

實參是函式呼叫的時候有主調函式傳遞給被調函式的引數,比如說:

int x=1;

a=f(x);

這兒的x就是實參,函式呼叫之後,x 的值就傳遞給了形參i

3樓:匿名使用者

int f(int i)

這個i就是形參。

而int i = 10;

f(i);這個要傳給函式的引數i就是實參--實際引數

4樓:

簡單的說實參不可以改變,一旦設定就不可更改除非重新附值,而形參可根據實際改變

函式中什麼是實參什麼是形參

5樓:匿名使用者

朋友你好,

具體書面上來看,函式的形參和實參具有以下特點:

1. 形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只有在函式內部有效。函式呼叫結束返回主調函式後則不能再使用該形參變數。

2. 實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。

3. 實參和形參在數量上,型別上,順序上應嚴格一致,否則會發生型別不匹配」的錯誤。

4. 函式呼叫中發生的資料傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函式呼叫過程中,形參的值發生改變,而實參中的值不會變化。

從我們平常的編碼當中,其實對實參和形參的區分方法很簡單:

1. 比如你定義一個函式void add(int a, int b),這裡的a和b就是形參。

2. 當你進行函式呼叫的時候,add(1, 2),這裡的1和2就是實參。

即,你新建一個方法需要的引數,就是叫形參,你呼叫這個引數的時候,傳入的引數就叫實參。

其實,這只是一個很簡單的概念問題,糾結這種東西對自己沒有一點好處,只要我們記住什麼叫形參和實參就行了,用法其實很簡單。

希望我的話對你有所幫助。

6樓:

形參相當於變數名,a

實參相當於要給變數的值,100

傳參相當於a=100,

傳參之後儲存控制器就會給儲存器分配一個記憶體空間,指標就會指向值為100記憶體單元,

7樓:

函式定義時寫的引數叫做形參,這個只是告訴你函式需要這些引數才能執行,這些引數只是給你看的,沒有分配記憶體,沒有具體的值。

函式呼叫時寫的引數叫做實參,這些引數要有意義,即分配了記憶體,有具體的值。

8樓:淦海瑤

不用管這些概念,知道怎麼用就好了

如int max(int a,int b)這是子函式

在主函式種呼叫

main()

只要max()這裡面的引數對應就好了,型別要對應

c語言中什麼是形參,什麼是實參?

9樓:奔跑吧洋洋洋

形參:全稱為「形式引數」是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳遞的引數。

形參的作用是實現主調函式與被調函式之間的聯絡,通常將函式所處理的資料,影響函式功能的因素或者函式處理的結果作為形參。

實參:全稱為"實際引數"是在呼叫時傳遞給函式的引數,即傳遞給被呼叫函式的值。

實參可以是常量、變數、表示式、函式等, 無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。

10樓:高金山

例如:你自己定義一個函式 int max(int a,int b)在這裡a,b就是形參,接下來你會呼叫max函式,如:

void main()

這裡c d就是實參

所謂形參就是在函式定義體中的引數

所謂實參就是在呼叫函式時實際傳進函式的引數

11樓:千鋒教育

1、形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數。

2、實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使引數獲得確定值。

3、實參和形參在數量上,型別上、順序上應嚴格一致,否則就會發生型別不匹配的錯誤。

4、在一般傳值呼叫的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函式呼叫過程中,形參值發生改變,而實參中的值不會變化。而在引用呼叫的機制當中是將實參引用的地址傳遞給了形參,所以任何發生在形參上的改變實際上也發生在實參變數上。

12樓:無知的閒人

假如一個函式在定義的時候的**是:max(x,y)在掉用的時候的**是:max(a,b)

則x,y是形參。a,b是實參

就是定義的時候用的就是形參

呼叫的時候用的就是實參

13樓:匿名使用者

形參麼就是形式引數,它在某一段語塊中才有意義比如你定義一個函式

int fac(int x,int y)

在你要用到函式的時候,你輸入兩個數,然後電腦自身就在這函式中,把你輸入的第一個數成為x,第二個為y,然後計算,最後得出結果,但跳出函式後,xy就沒了,他們有變成空值了

14樓:匿名使用者

如果是初學者,可以簡單的理解成函式定義時規定的引數名字就是形式引數,其它的都是實際引數的。c語言中除了函式定義也沒有多少地方使用形參了

15樓:匿名使用者

形參就是傳的是引數的地址而不是引數的值,

實參就是傳值了.呵呵.

16樓:匿名使用者

覺得回答都很不專業 我也不專業 有時候這東西需要多用然後你就會體會它的意思了,從文學上來講,你從字面去理解,形參就是形式上的引數,可以代表很多組滿足自己條件的數,實參就是實際的引數

函式的形參和實參有什麼關係

17樓:匿名使用者

形式引數在執行的過程中其值就是在呼叫函式時傳入的實際引數的值,形參也是區域性變數,它的作用域就是宣告它的函式體,呼叫函式時分配空間,從函式返回後釋放空間,形參的變化不會導致實參改變。

18樓:雙槍老椰子

形參:全稱為"形式引數"是在定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳如的引數.

實參:全稱為"實際引數"是在呼叫時傳遞個該函式的引數.

形參和實參的型別必須要一致,或者要符合隱含轉換規則,當形參和實參不是指標型別時,在該函式執行時,形參和實參是不同的變數,他們在記憶體中位於不同的位置,形參將實參的內容複製一份,在該函式執行結束的時候形參被釋放,而實參內容不會改變.

而如果函式的引數是指標型別變數,在呼叫該函式的過程中,傳個函式的是實參的地址,在函式體內部使用的也是實參的地址,即使用的就是實參本身.所以在函式體內部可以改變實參的值.

給你一個很簡單的例子:

int f(int b) /*b為形參*/main()

19樓:來笑雲

分好多啊 可惜我不會 記得老師講的時候有從記憶體的角度說過

c++中,實參和形參有什麼區別?

20樓:無法無天

實參和形參被分配的地址不同。可以這樣比喻,實參是一間別墅,而形參是另一間別墅。實參裡的東西被複制了一份搬到了形參裡面,而形參這件別墅裡面的東西被扔了或者新增了新的東西是不會對實參這件別墅造成影響的。

如果不用指標或者引用,實參只能向形參裡面傳遞東西(值),就好比上面的舉例,實參的東西能拷貝一份搬到形參裡面,而形參裡面的東西(值)被改變卻不會反向傳遞,就是形參裡面的東西不會覆蓋實參的東西(值)。

簡單地說就是實參和形參操作的地址不同,如果需要得到改變的值,一般都是用return返回值,如果要改變實參都會使用指標或者引用來實現,這樣操縱地址使得實參操縱起來更加的方便。

形參的作用域僅限於定義的函式內,一旦出了這個函式,定義的形參就會被釋放掉。

21樓:匿名使用者

形參就是函式定義時候給引數隨便起的一個名字,只是為了和其它變數區別的形式上的名字

實參就是呼叫函式時,實際傳給函式的引數,傳了什麼就是什麼

22樓:賴福平

例如:int func(int a,int b)

int main()

其中a,b就是形式引數,x,y就是實際引數。形式引數是在函式實現的時候用到,而實際引數是在呼叫函式時把值傳遞給形式引數然後執行函式。

23樓:匿名使用者

int fun(int n)

int main()

這個例子裡面n是形參,他不是主函式中具體存在的引數。

i是實參,他在主函式中被定義,也就是在記憶體中有這個實際的個體,而在fun函式中,以n的形式被傳入。

區分起來很簡單,形參在自定義的函式中被定義,如n。而實參是在呼叫函式的時候需要被傳入的引數,如i。

24樓:

加點兒分吧,這樣大家都會關注的!

你的提問也會被排到前面!

形參與實參的區別,怎麼區分呢

25樓:匿名使用者

通過形參與實參在函式中位置來進行區分,兩者區別如下:

一、主體不同

1、實參:在呼叫有參函式時,函式名後面括號中的引數為「實際引數」。

2、形參:不是實際存在變數,又稱虛擬變數。

二、目的不同

1、實參:可以是常量、變數或表示式, 無論實參是何種型別的量,在進行函式呼叫時,都必須具有確定的值, 以便把這些值傳送給形參。

2、形參:定義函式名和函式體的時候使用的引數,目的是用來接收呼叫該函式時傳入的引數。

三、特點不同

1、實參:在呼叫函式過程中,系統會把實參的值傳遞給被呼叫函式的形參。或者說,形參從實參得到一個值。該值在函式呼叫期間有效,可以參加該函式中的運算。

2、形參:形參的本質是一個名字,不佔用記憶體空間。

26樓:從頭再來好風彩

一、函式中使用:

形參出現在函式定義中,在整個函式體內都可以使用, 離開該函式則不能使用。

實參出現在主調函式中,進入被調函式後,實參變數也不能使用。

二、呼叫

形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數。

實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使引數獲得確定值。

三、不是指標型別在記憶體中位置不同:

當形參和實參不是指標型別時,在該函式執行時,形參和實參是不同的變數,他們在記憶體中位於不同的位置,形參將實參的內容複製一份,在該函式執行結束的時候形參被釋放,而實參內容不會改變。

舉例:1. 比如你定義一個函式void add(int a, int b),這裡的a和b就是形參。

2. 當你進行函式呼叫的時候,add(1, 2),這裡的1和2就是實參。

擴充套件資料

形參的作用是實現主調函式與被調函式之間的聯絡,通常將函式所處理的資料,影響函式功能的因素或者函式處理的結果作為形參。

沒有形參的函式在形參表的位置應該寫void.main 函式也可以有形參和返回值,其形參也稱為命令列引數,由作業系統在啟動程式時初始化,其返回值傳遞給作業系統。

兩者關係:

在一般傳值呼叫的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函式呼叫過程中,形參值發生改變,而實參中的值不會變化。而在引用呼叫的機制當中是將實參引用的地址傳遞給了形參,所以任何發生在形參上的改變實際上也發生在實參變數上。

c語言關於函式形參的問題,C語言函式的形參問題

你可能對形參和實參有些混淆。為了說明清楚,將f函式的形參換個字母,不影響程式的正確性。f int t 在執行f s 時,首先建立了一個臨時變數int t,然後執行了賦值t s。注意,s沒有受到任何改變。現在,t指向了變數b。然後,又建立了一個臨時變數a,他的值是5.接著,令t a。所以t指向了變數a...

sqlserver中的round函式有引數請問這

round 是兩個引數 round a,b a 代表是要用到得欄位 b是保留的小數下面看別人的例子 round的格式 round p1,p2,p3 其作用是取四舍四入值p1 要被四捨五入的數字p2 保留的小數位數p3 如果為0或不輸入,則表示進p1進入四捨五入,如round 123.86,1 123...

c語言中形參和實參是什麼意思?有什麼區別

舜茵戰韶容 引數傳遞主要用於模組化程式設計中。如果不瞭解引數傳遞是無法編寫出正確的呼叫函式的。形參就是形式引數,用一個變數代表大家。實參就是實際引數,用一個 確切的數值代替形式引數,可以是表示式。實際引數與形式引數的引數個數 型別和順序都應一樣,如果不一樣的話,系統會強制轉換,這樣會造成資料的丟失。...