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

c語言形參轉實參

發布時間: 2022-04-20 07:04:18

c語言中形參與實參怎麼傳遞

我簡單描述一下~c語言傳遞參數機構是這樣的~非指針類的數據傳遞參數時傳數值,指針類數據傳遞參數時傳地址
(這里數組名也算指針)
比如
int
max(int
a,int
b);
這時候如果調用這個函數max(x1,x2);僅僅將x1和x2的數值傳遞給函數max,a與x1佔有不同的內存區域
int
max(int
*a,int
*b);
這時候如果調用這個函數max(&x1,&x2);則將x1、x2的地址傳遞給a、b,a指向x1的地址,也就是說a可以操控x1的數值。
如果想具體了解可以參看譚浩強教授寫的~c語言程序設計~很好很強大~

⑵ c語言 形參實參

定義函數時,有參(也有無參)函數有個參數表,比如sort(int
a[],
int
n),int
a[]和int
n就是形參,而調用函數時,如sort(p,m);,p和m就是實參,sort(a,n);中a和n也是實參,注意一個是定義,一個是調用。
main()函數可以調用某個函數f(a,b),而函數f(a,b)又可以調用其他函數,無論誰調用誰,主調函數傳送的參數就是實參,被調函數中的參數就是形參。

⑶ C語言形參能改變實參的數據嗎

想改變實參就要把實參的地址傳給形參,如果實參本身就是個地址(也就是指針),那如果想通過函數改變實參的值就只能傳地址的地址(即二級指針)

⑷ 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語言中形參和實參是什麼意思有什麼區別

形參就是形式參數,用一個變數代表大家。實參就是實際參數,用一個 確切的數值代替形式參數,可以是表達式。實際參數與形式參數的參數個數、類型和順序都應一樣,如果不一樣的話,系統會強制轉換,這樣會造成數據的丟失。實 參向形參的傳遞是值的傳遞。

這個值就是對實參的表達式進行計算的結果,它可以是常量值、變數值、數組元素、函數值等。如果實參是數組名了,那麼它傳送的就是地址的值了。比如:
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語言中什麼是形參,什麼是實參

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

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

實參:全稱為"實際參數"是在調用時傳遞給函數的參數,即傳遞給被調用函數的值。

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

(6)c語言形參轉實參擴展閱讀:

形參和實參的特點:

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

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

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

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

參考資料來源:網路-形參

參考資料來源:網路-實參

⑺ C語言形參和實參的傳遞

fun函數內部的形參a、b、t是傳遞給fun函數的實參的拷貝,交換它們不會影響到外部實參的值。

⑻ 在c語言中怎樣使形參值改變實參值也跟著改變

在C裡面 是無法做到形參改變 實參值同步改變的。
只能通過傳地址的方式
即參數類型為指針
這樣 形參指向空間修改,可以使得實參指向空間同步修改,因為是同一塊內存區域。

另外,在C++中,可以通過引用傳參,來實現你說的目的。

⑼ C語言中的形參與實參的關系是什麼

形參
form
parameter
實參
real
parameter
出現在函數定義中的參數,就叫形參
出現在函數調用中的參數,就叫實參
函數定義:
int
max(
int
a
,
int
b
)
//這里的a,b就是形參
{
//在函數中,形參就可以當作是一個局部變數。
if
(
a>b
)
return
a;
else
return
b;
}
函數調用
int
main()
{
int
a=3,b=5
;
printf(
"max=%d\n"
,
max(a,b)
);
//這里的a,b就是實參
c中的函數參數傳遞是傳遞變數的數值,因此,這里相當於調用
max(3,5)
而子函數中收到的就會是
3
5這兩值,而與ab變數沒有關系。
return
0;
}

⑽ 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。可見實參的值不隨形參的變化而變化。/*---------------------------------------------------------------------------------*/