當前位置:首頁 » 編程語言 » c語言形參和實參能互傳嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言形參和實參能互傳嗎

發布時間: 2023-08-17 04:17:47

c語言規定,簡單變數做實參時,它和對應形參之間的數據傳遞方式是

答案是B,單向的值傳遞

簡單變數做實參時,相應的形參變數也是簡單變數,它們之間的數據傳遞方式是單向的值傳遞,即數據只能由實參傳到形參,形參值的改變不影響實參值的變化。

(1)c語言形參和實參能互傳嗎擴展閱讀:

形參和實參的特點:

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

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

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

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

參考資料:網路——形參

② 在C語言中,定義一個函數的形參和實參之間具體是如何進行參數傳遞的

主要有兩種:(1)值傳遞:在函數調用時,將實參的值復制一份傳遞到調用函數中,這樣,如果在調用函數中修改了參數的值,也不會影響到實參的值。(2)引用傳遞:與(1)相反,即會影響實參的值。如何區分它們呢?實際上,通常在定義函數時,如果參數為數組、指針或引用類型時,函數採用引用傳遞,否則採用值傳遞。

③ 關於c語言 在c中調用函數時,只能把實參的值傳遞給形參,形參的值不能傳給實參。這句話對嗎為什麼

比如定義

int f(int b) 這里的b就是形參

在調用的時候

我們寫 f(a) 這里的a是本地變數,調用f的時候叫做實參

在f(a)後,函數f里的形參b的值是a賦予的,所以實參的值傳遞給形參這句話是對的

形參的值不能傳給實參這句話在嚴格意義上來說也是對的,

比如,你在函數f(int b)裡面寫 b= 1000; 對於實參a來說並沒有任何影響。

但是,如果你的函數定義是指針,那麼函數可以改變指針上儲存的內容,但是不能改變指針本身。如果從這點考慮的話,實參是可以通過形參給改變的

④ c語言形參的值能不能傳遞給實參

形參和實參擁有分別的存儲空間,即便是指針傳遞,改變的也只可能是這個指針變數所指向的內容,而不是指針變數本身的值,也即,如有指針變數p,那對實參的變化,有可能改變的也只是*p的值,而不是p本身的值。

實參和形參在英文中,argument和parameter經常可以互換使用,但是C99標准規定了:

對於actualargument或actualparameter使用術語argument(譯為實參);對於formalargument或formalparameter使用術語parameter(譯為形參)。

為遵循這一規定,我們可以說形參是變數,實參是函數調用提供的值,實參被賦給相應的形參。因此,在上述示例中,times是pound()的實參,n是pound()的形參。類似地,在函數調用pound(times+4)中,表達式times+4的值是該函數的實參。

(4)c語言形參和實參能互傳嗎擴展閱讀

函數的調用

第1個函數調用是pound(times),times的值5被賦給n。因此,printf()函數列印了5個井號和1個換行符。第2個函數調用是pound(ch)。

這里,ch是char類型,被初始化為!字元,在ASCII中ch的數值是33。但是pound()函數的參數類型是int,與char不匹配。

程序開頭的函數原型在這里發揮了作用。原型(prototype)即是函數的聲明,描述了函數的返回值和參數。pound()函數的原型說明了兩點:

-該函數沒有返回值(函數名前面有void關鍵字);-該函數有一個int類型的參數。

⑤ 在C語言中,函數實參與形參之間的數據傳遞方式是( )傳遞方式。

函數實參與形參之間的數據傳遞方式是( 值傳遞)傳遞方式,在C語言中,數據傳遞方式有值傳遞和引用傳遞,值傳遞:傳值,實際是把實參的值賦值給行參,相當於。

那麼對行參的修改,不會影響實參的值 。引用傳遞: 實際是傳值的一種特殊方式,只是他傳遞的是地址,不是普通的賦值,那麼傳地址以後,實參和行參都指向同一個對象,因此對形參的修改會影響到實參。

(5)c語言形參和實參能互傳嗎擴展閱讀

傳值調用中,只使用了實參的值。傳值調用機制里,形參是一個局部變數,其初始值為相應實參的值。在引用調用機制里,將實參的地址傳遞給形參,從表面上看是以實參變數取代形參,因此任何發生在形參上的改變實際上都發生在實參變數上。

引用傳遞是將變數的內存地址傳遞給方法,方法操作變數時會找到保存在該地址的變數,對其進行操作。會對原變數造成影響。可以將一個變數通過引用傳遞給函數,這樣該函數就可以修改其參數的值。

⑥ C語言中的基本數據類型作為實參時,它和對應的形參之間數據傳遞方式為數值傳遞形參值改變影不影響實參

對,c語言函數調用過程中的參數傳遞過程是值傳遞過程,形參在函數執行完畢後即被銷毀,實參的值不會被改變。若想使用函數修改實參的值前脊,慧伍滲可以使橘游用指針或者引用的方式聲明函數參數

⑦ 關於C語言里實參和形參傳遞

voidfun(inta,intb){

intt;

t=a;

a=b;

b=t;

}

確實執行了操作,但是操作結果無法返回到main()函數,因此結果不變.

可通過指針傳遞地址,改正如下(但是我不太明白你的程序的意思):

#include<stdio.h>

voidfun(int*a,int*b)

{intt;

t=*a;*a=*b;*b=t;

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

for(i=0;i<=10;i+=2)fun(&c[i],&c[i+1]);

for(i=0;i<10;i++)printf("%d",c[i]);

printf(" ");

getch();

}