Ⅰ c語言函數中的實參和形參是什麼意思啊我老是看不懂 謝謝了
顧名思義,形參只是為了塑造一個函數的外形.比如max(x,y),這里x和y我們叫它形參.而我們有兩個數a=10,b=8,把a和b賦值給max函數的話,就可以比較a和b的最大值,那麼a,b在這里就叫做實參,是實際輸入的值.
你自己復制的不是很清楚嗎,解釋的很好.
Ⅱ c語言中參數是什麼概念
函數的參數分為形參和實參兩種。
形參出現在函數定義中,在整個函數體內都可以使用,離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變數也不能使用。
形參和實參的功能是作數據傳送,發生函數調用時,主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
舉個例子:
定義一個函數s=f(a,b),功能是將a和b的差賦值給s,那麼,a和b就是這個函數的兩個參數。
(2)C語言行參變數是什麼擴展閱讀:
C語言的參數傳遞方式
方法有3種方式:值傳遞、地址傳遞、引用傳遞
tips:
被調用函數的形參只有函數被調用時才會臨時分配存儲單元,一旦調用結束佔用的內存便會被釋放
值傳遞和地址傳遞,傳遞的都是實參的一個拷貝
C語言中實參和形參之間的數據傳遞是單向的「值傳遞」,單向傳遞,只能由實參傳給形參,反之不行
輸出格式並沒有選擇%p而是選擇了%d,因為十進制的數看起來更直觀。
值傳遞
如果只是傳遞值的話:
#include <stdio.h>
//值傳遞傳值
void swap( int x, int y);
int main()
{
int a=2,b=3;
printf("before:實參為a,b a=%d,地址為%d b=%d,地址為%d ",a,&a,b,&b);
swap(a,b);
printf("after:實參為a,b a=%d,地址為%d b=%d,地址為%d ",a,&a,b,&b);
return 0;
}
void swap(int x,int y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("inside:形參為x,y x=%d,地址為%d y=%d,地址為%d ",x,&x,y,&y);
}
Ⅲ 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。可見實參的值不隨形參的變化而變化。
Ⅳ C語言函數中的形參和實參分別是指什麼
形參出現在函數定義中,在整個函數體內都可以使用, 離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變數也不能使用。 形參和實參的功能是作數據傳送。發生函數調用時, 主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
1.形參變數只有在被調用時才分配內存單元,在調用結束時, 即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。 函數調用結束返回主調函數後則不能再使用該形參變數。
2.實參可以是常量、變數、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。
3.實參和形參在數量上,類型上,順序上應嚴格一致, 否則會發生「類型不匹配」的錯誤。
4.函數調用中發生的數據傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函數調用過程中,形參的值發生改變,而實參中的值不會變化。
Ⅳ C語言中,什麼是形參和實參最好能舉個例子!
形參和實參其實沒有實質區別,都是值傳遞。
形式上你可以發現實參是可以在其他函數裡面修改的~
形參和實參最大的區別就是形參能夠雖然也能夠進行值得修改,但是只能夠在函數內部,而實參是可以在全局范圍內修改變數的值~這里需要提的是C語言有全局和局部的概念~形參就是僅僅的值傳遞,而當你的值傳遞到函數內部的時候,這個時候函數內修改的參數的地址已經不是主函數的變數地址了~也就是是說函數內對數值的任何修改都對主函數的變數沒有任何影響
與之相對的實參,一般是通過指針的形式,它雖然也是傳遞值,但是這個值是地址,所以呢,你可以發現,地址傳過去了,那麼就可以像一根指針一樣遠程操縱者主函數內部的變數。
下面這個例子我都寫好了,記住是VisualStudioC++的運行環境啊~別用TC了~
#include<stdio.h>
int main()
{
void max1(int *a,int *b);//實參例子
void max2(int c,int d);//形參例子
int *x,*y;
int e,f;char k;
printf("請輸入兩個數字,格式為:」數字,數字「(不包括引號)");
scanf("%d,%d",&e,&f);
printf("請輸入你要演示的例子:\n 1.實參例子 \n 2.形參例子");
getchar(k);
switch(k)
{
case'1':{
x=&e;y=&f;max1(x,y);printf("這是在主函數輸出的數據:e=%d,f=%d",&e,&f);
}
case'2':{max2(e,f);
printf("這是在主函數輸出的數據:e=%d,f=%d",&e,&f);}
default:printf("error\n");
}
return 1;
}
void max1(int *a,int *b);//實參例子
{
int c;
if(*a>*b)
{
c=*a;*a=*b;*b=c;
}
printf("這是在max1函數輸出的數據:e=%d,f=%d",a,b);
}
void max2(int c,int d);//形參例子
{
int g;
if(c>d)
{
g=c;c=d;d=g;
}
printf("這是在max2函數輸出的數據:e=%d,f=%d",a,b);
}
Ⅵ C語言中什麼是形參,什麼是實參
形參是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳遞的參數。實參是一個確定的值。
void sort(int arr[], int n)中arr[]和n就是形參,sort(arr[5], 5)中arr[5]和5就是實參
Ⅶ C語言中什麼是形參,什麼是實參
形參:全稱為「形式參數」是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳遞的參數。
形參的作用是實現主調函數與被調函數之間的聯系,通常將函數所處理的數據,影響函數功能的因素或者函數處理的結果作為形參。
實參:全稱為"實際參數"是在調用時傳遞給函數的參數,即傳遞給被調用函數的值。
實參可以是常量、變數、表達式、函數等, 無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值, 以便把這些值傳送給形參。 因此應預先用賦值,輸入等辦法使實參獲得確定值。
(7)C語言行參變數是什麼擴展閱讀:
形參和實參的特點:
1、形參變數只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只在函數內部有效。函數調用結束返回主調用函數後則不能再使用該形參變數。
2、實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使參數獲得確定值。
3、實參和形參在數量上,類型上、順序上應嚴格一致,否則就會發生類型不匹配的錯誤。
4、在一般傳值調用的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函數調用過程中,形參值發生改變,而實參中的值不會變化。而在引用調用的機制當中是將實參引用的地址傳遞給了形參,所以任何發生在形參上的改變實際上也發生在實參變數上。
參考資料來源:網路-形參
參考資料來源:網路-實參
Ⅷ C語言中實參與行參是怎麼回事
形參啟神:全稱為"形式參數"是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳如的參數.
實參:全稱為"實際參數"是在調用時傳遞個該函數的參數.
形參和實參的類型必須要一致,或者要符合隱含轉換規則,
當形參和實參不是指針悄知虧類型時,在該函數運行時,形參和實參是不同的變數,他們在內存中位於不同的位置,形參將實參的內容復制一份,在該函數運行結束的時候形參被釋放,
而實參內容不會改變.
而如果函數的參數是指針類型變數,在調用該函數的過程
中,傳個函數的是實參的地址,在函數體內部使用的也是實參的地址,即使用的就是實參本身.所以在函數體內部可以改變實參的值.
給你一個很簡單的例子:
int
f(int
b)
/*b為形參*/
{
return
b;}
main()
{int
a=1;
printf("%d",f(a));/猛配*a為實參*/
}
Ⅸ 在C語言中,什麼是函數的行參和實參他們分別有什麼作用分別出現在什麼位置
比如float fun(int i,int j);是函數原型聲明,float fun(int,int);可以不寫變數名,是形參;
然後x=fun(i,j);是函數調用,傳遞給他的是實參。
在下來float fun(int a,int b){……} 是函數定義,參數是形參。