『壹』 c語言里實參和形參怎麼用,值傳遞和址傳遞怎麼用。
例如:你自己定義一個函數
int
max(int
a,int
b){...
}
在這里a,b就是形參,接下來你會調用max函數,如:
void
main()
{
int
c,int
d;
.....
max(c,d);
}
這里c
d就是實參
所謂形參就是在函數定義體中的參數
所謂實參就是在調用函數時實際傳進函數的參數
『貳』 在C語言中,定義一個函數的形參和實參之間具體是如何進行參數傳遞的
傳值調用和引用調用傳值調用和引用調用指的是用於參數傳遞過程中的一種機制。傳值調用中,只使用了實參的值。傳值調用機制里,形參是一個局部變數,其初始值為相應實參的值。在引用調用機制里,將實參的地址傳遞給形參,從表面上看是以實參變數取代形參,因此任何發生在形參上的改變實際上都發生在實參變數上。
形參的作用是實現主調函數與被調函數之間的聯系,通常將函數所處理的數據,影響函數功能的因素或者函數處理的結果作為形參。沒有形參的函數在形參表的位置應該寫void.main
函數也可以有形參和返回值,其形參也稱為命令行參數,由操作系統在啟動程序時初始化,其返回值傳遞給操作系統。
形參和實參的對照實例(C語言版)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);}
『叄』 c語言形參的值能不能傳遞給實參
形參和實參擁有分別的存儲空間,即便是指針傳遞,改變的也只可能是這個指針變數所指向的內容,而不是指針變數本身的值,也即,如有指針變數p,那對實參的變化,有可能改變的也只是*p的值,而不是p本身的值。
實參和形參在英文中,argument和parameter經常可以互換使用,但是C99標准規定了:
對於actualargument或actualparameter使用術語argument(譯為實參);對於formalargument或formalparameter使用術語parameter(譯為形參)。
為遵循這一規定,我們可以說形參是變數,實參是函數調用提供的值,實參被賦給相應的形參。因此,在上述示例中,times是pound()的實參,n是pound()的形參。類似地,在函數調用pound(times+4)中,表達式times+4的值是該函數的實參。
(3)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語言里實參和形參傳遞
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();
}
『伍』 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語言中實際參數和形式參數的設置及傳遞方式
C語言中實際參數(實參)與形式參數(形參)之間的傳遞方式有傳值和傳地址兩種函數調用方式。
下面通過舉例來說明實參和形參的設置方法以及傳值與傳地址的兩種函數調用方式。
值傳遞方式:
#include<stdio.h>
voidfun(inta,intb)//此處a,b為形參
{
a++;
b++;
}
voidmian()
{
inta=1,b=2;
fun(a,b);//按傳值方式調用函數fun,此處a,b為實參
printf("%d,%d ",a,b);//輸出a=1,b=2
}
地址傳遞方式:
#include<stdio.h>
voidfun(int*a,int*b)
{
*a=4;
*b=5;
}
voidmian()
{
inta=1,b=2;
fun(&a,&b);//按傳地址方式調用函數fun
printf("%d,%d ",a,b);//輸出a=4,b=5
}
『柒』 c語言中,實參向形參傳遞時,什麼時候用單向值傳遞,什麼時候用地址傳遞
C語言在形參和實參之間傳遞的不僅是值傳遞,也包括地址傳遞的。
細節如下:
C語言函數參數傳遞包括按值傳遞和按地址傳遞兩種;
當形式參數是數組、指針時都是使用的按地址傳遞。
『捌』 C語言規定,調用一個函數時,實參變數和形參變數之間的數據傳遞方式是什麼
函數只有兩種傳遞方式:
1、值傳遞,又稱單向傳遞,只能把實參數值傳給形參 ,形參最後的結果不影響實參(形參改變大小 ,實參大小不變)。
2、址傳遞,通過指針,把實參的地址給形參,形參的大小可以影響實參。
(8)c語言形參實參的傳遞擴展閱讀:
實參變數和形參變數之間的調用過程
1、函數的形參列於函數聲明中,在函數定義的函數體內使用,在未出現函數調用時,形參不佔內存中的存儲單元。
2、將實參的值傳遞給形參,當函數被調用時,實參列在函數名後面的括弧里,執行函數調用時,實參被傳遞給形參。
3、在執行函數期間,由於形參已經有值,可以利用其進行相關運算。
4、通過return語句將函數值帶回到主調函數。
5、調用結束,形參單元被釋放。實參單元仍保留並維持原值(值傳遞)。
『玖』 C語言形參和實參的傳遞
fun函數內部的形參a、b、t是傳遞給fun函數的實參的拷貝,交換它們不會影響到外部實參的值。
『拾』 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語言程序設計~很好很強大~