C語言新手這道程式,函式呼叫,實參形參

2021-05-04 08:54:09 字數 2865 閱讀 5964

1樓:匿名使用者

給你寫了注釋,看看能否看懂,不懂可追問

#include

void fun(double *sn, int n);

int main(void)

均不計行數、行長不計行首tab縮排) */

printf("\ns=1/1!+1/2!+...+1/%d!=%.16f", n, sum);

return 0;

}void fun(double *sn, int n) //這裡圈地進去的sn就是&sum,也就是實參sum的位址,因此改變*sn就是改變實參sum的值

/* user code begin(limit: lines<=1, linelen<=30, 考生可在本行後新增**、最多1行、行長<=30字元) */

*sn = sum; //*sn就是實參的值,將區域性變數sum的值賦值給實參sum,因此外面的sum的值就改變了

/* user code end(考生新增**結束。注意:空行和單獨為一行的均不計行數、行長不計行首tab縮排) */}

2樓:匿名使用者

實參傳的是sum的位址,形參sn接收到這個位址,最後*sn=sum;是對這個位址的記憶體空間進行賦值,所以實參sum的值也相應改變。

3樓:春雨_潤物

抒sum的位址傳給了指標變數sn,把n的值傳給了變數n(注意這裡的兩個n不一樣)

由於函式為void型的,所以沒有返回值,但仍然可以通過指針對實參產生影響。

4樓:匿名使用者

第一答案:fun(&sum,n); 解析:目的是考查考生對函式的呼叫,並把呼叫函式後的處理結果顯示出來。

從函式原型:void fun(double *sn, int n),它返回型別為void,即沒有返回值,只能通過指標直接把指定的記憶體位址的內容修改從而達到把函式處理後的結果傳遞回來的效果。函式第乙個引數為指標double *sn,也即是要求引數是記憶體位址,&sum就是main()函式中的變數sum的記憶體位址,「&」取址運算子。

把main()函式中的變數sum的記憶體位址傳給*sn後,給*sn賦值,也即是修改了main()函式中的變數sum的值。

5樓:

在main函式中是把sum的位址傳給了fun函式,在fun函式中將最後算出來的值賦到了傳進來的位址中,也就是說main中的sum所在位址中的值被fun函式改變了,而那個值就是sum,所以sum的值被改變了。

c語言規定,呼叫乙個函式時,實參變數和形參變數之間的資料傳遞方式是什麼 5

6樓:四捨**入

函式只有兩種傳遞方式:

1、值傳遞,又稱單向傳遞,只能把實引數值傳給形參 ,形參最後的結果不影響實參(形參改變大小 ,實參大小不變)。

2、址傳遞,通過指標,把實參的位址給形參,形參的大小可以影響實參。

7樓:匿名使用者

看到很多都說是值傳遞,本人認為只能由使用者指定傳遞方式。

在c語言中,軌道引數傳遞方式有兩種(其實還有引用傳遞):值傳遞和位址傳遞,也就是說可以值傳遞,也可以位址傳遞。至於到底採取什麼傳遞方式應該得有使用者根據形參型別來指定了。

比如 函式 int f( int *p) 此處接收的只能是位址型別

在主函式中定義變數 a =3; 此時實參a的值為3,很明顯 如果這種採用值傳遞方式呼叫 f(a)肯定不合適,

正確的應該是位址傳遞方式呼叫 f(&a) ,也許有些會說,位址也是值。但c明確的規定,實參的值和實參的位址是有本質區別的

故本人認為 傳遞方式只能由使用者根據 形參來指定傳遞方式。

8樓:

函式只有兩種傳遞方式 乙個是值傳遞 乙個是址傳遞 址傳遞 是指傳的是位址 也就是說 是以陣列過指標作為引數傳遞 而值傳遞傳的是 數 可以是整形的 也可以是實行的

9樓:匿名使用者

資料傳遞是「值傳遞」,即單向傳遞,只由實參傳遞給形參,而不能由形參傳回來給實參。

10樓:匿名使用者

實參向形參的資料傳遞是「值傳遞」,單向傳遞,只由實參傳給形參,而不能由形參傳回給實參

c語言函式呼叫時,實參和形參是如何傳遞的?什麼時候要寫指標型變數?求高手指點~

11樓:匿名使用者

形參bai在函式定義時表示的du一種佔位符zhi,實參就是裡面存有實際變數dao值或者版

常量,函式呼叫時,實參權值會自動傳遞給形參變數。指標比較複雜了。是變數的位址,如果引數型別是指標型別,則必須把實參變數的位址傳遞過去。當然在函式內也是間接引用實參變數的。

比如void f(int * p) //形參是指標型別變數下面是呼叫形式

f(&a); //呼叫函式,實參是變數a的位址。

12樓:孟於清

比如void main(void)是形參···· void main(unsigned int m)是實參

13樓:jyw金

回答:1.傳值呼叫,形參是實參的乙個拷貝,形參和實參不是同乙個儲存單元。

2.傳位址呼叫,將實參的位址傳給形參,形參和實參操作同一儲存單元。

14樓:巢秀榮容子

這程式是你寫的嗎?

要是你寫的話

你就看下面的三段話

就能找出。

1.比如你定義乙個函式專void

add(int

a,int

b),這裡的屬a和b就是形參。

2.當你進行函式呼叫的時候,add(1,

2),這裡的1和2就是實參。

3.形參就是沒有賦值的變數,實參就是有賦值的變數

c語言程式設計函式呼叫問題,C語言程式設計函式呼叫問題

char in if in yi 錯了。char in 只能容納 1 個 ascii 符號。改 char in 4 printf 解方程應用 n n您要解的方程是?n printf 一元二次方程 yi n printf 二元一次方程 er n scanf s in 0 if strcmp in,yi...

c語言 呼叫函式求最大值問題,C語言 呼叫函式求最大值問題

printf 最大的數是 n max printf 最大的數是 d n max printf 最大的數是 d n max a 10 10 這樣應該就可以了!您的程式有多處錯誤。既然是初學,就先把最基本的東西都弄清楚啊,否則別人都不願意幫您。簡單列出您的錯誤如下 1 在max函式內又宣告了a 10 這...

求教C語言的函式的遞迴呼叫,c語言函式遞迴呼叫看不懂了,求教

答案是16 fit 6 呼叫函式 fit 5 fit 4 繼續呼叫 fit 4 fit 3 fit 3 fit 2 繼續呼叫 fit 3 fit 2 fit 2 fit 1 fit 2 fit 1 fit 2 呼叫fit 2 fit 1 fit 2 fit 2 fit 1 fit 2 fit 1 f...