求c語言程式引數的傳值方式與傳位址方式編

時間 2021-12-20 06:19:23

1樓:匿名使用者

#include

void value(double r1, double r2, double *bing, double *chuan)

int main()

2樓:匿名使用者

//下面提供乙個程式**供參考

#include

//計算併聯電阻,其中jieguo以引用傳遞,函式中修改後,直接改變原來的數值;

//r1,r2以數值的方式傳遞

//計算串聯電阻,其中jieguo以位址傳遞,函式中修改後,直接改變原來變數的數值;

//r1,r2以數值的方式傳遞

void jisuan_chuan( double *jieguo, double r1, double r2)

int main()

3樓:善護

#include "stdafx.h"

#include

#include

using namespace std;

void funcp(double a, double b, double *bing, double *chuan)

int _tmain(int argc, _tchar* ar**)

4樓:匿名使用者

#include

int subfun(int arg1,int arg2)

int main()

5樓:匿名使用者

#include

// sub-function for calculate// parameter: r1, r2// return value: bing, chuanvoid calc(double r1, double r2, double *bing, double *chuan)

int main()

c語言中實際引數和形式引數的設定及傳遞方式

6樓:天雲一號

c語言中實際引數(實參)與形式引數(形參)之間的傳遞方式有傳值和傳位址兩種函式呼叫方式。

下面通過舉例來說明實參和形參的設定方法以及傳值與傳位址的兩種函式呼叫方式。

值傳遞方式:

#include

void fun(int a, int b)  // 此處a, b為形參

void mian()

#include

void fun(int *a, int *b)void mian()

7樓:匿名使用者

如果形式引數是變數級的,實參和形參的傳遞就是值傳遞,即實參的數值複製乙份傳給形參;

如果形式引數是表示位址含義的,如陣列、指標等,實參應該是陣列名或指標,傳遞時實參則把位址傳遞給形參,即形參和實參是對相同位址的資料進行的操作。

8樓:喧嘩街道

分為傳參呼叫和傳址呼叫

c語言中的引數傳遞方式有哪些

9樓:風若遠去何人留

兩種 傳位址和傳值。

傳位址也叫傳指標呼叫。

10樓:

只有值傳遞,位址傳遞。 引用傳遞是c++的

11樓:go學龍

有兩種,一種按值傳遞,一種按引用傳遞

說c語言中函式值傳遞與位址傳遞的方法 5

12樓:憤怒de翔小果

先舉個簡單例子:

#include

using namespace std;

void add1(int *a)

void add2(int a)

int main()

輸出:2 5

這兩個自加函式中,add1是指標傳遞,add2是數值傳遞,在呼叫add2(y)時,系統是先建造乙個int型變數a,再將y的值傳給a(此時y和a是兩個不同位址的變數,只是兩者值相同),然後a++,卻對y沒有任何操作,故在函式呼叫結束後,釋放a,而y沒任何變化;

在呼叫add1(&x)時,系統先建造int型指標a,然後將實參x的位址傳給了指標a,故此時a與&x是指向同一位址,即共享統一資料,當對位址a內的資料進行操作,就是對x進行操作。a++時自然也對x++,當函式呼叫結束,指標a釋放掉,x的值此時已經發生了變化。

這就是兩者不同,位址傳遞的引數都是指標型別,於數值傳遞不一樣。

至於選擇那種傳遞,就要看這個程式的具體目的和功能了,一般要對引數進行修改的要用位址傳遞,而只是呼叫引數的資料進行其他計算並不需要修改資料本身宜用數值傳遞。

還有什麼不明白嗎

13樓:摯愛和你共亨

先舉個簡單例子:

#include

using namespace std;

void add1(int *a)

void add2(int a)

int main()

輸出:2 5

這兩個自加函式中,add1是指標傳遞,add2是數值傳遞,在呼叫add2(y)時,系統是先建造乙個int型變數a,再將y的值傳給a(此時y和a是兩個不同位址的變數,只是兩者值相同),然後a++,卻對y沒有任何操作,故在函式呼叫結束後,釋放a,而y沒任何變化;

在呼叫add1(&x)時,系統先建造int型指標a,然後將實參x的位址傳給了指標a,故此時a與&x是指向同一位址,即共享統一資料,當對位址a內的資料進行操作,就是對x進行操作。a++時自然也對x++,當函式呼叫結束,指標a釋放掉,x的值此時已經發生了變化。

這就是兩者不同,位址傳遞的引數都是指標型別,於數值傳遞不一樣。

至於選擇那種傳遞,就要看這個程式的具體目的和功能了,一般要對引數進行修改的要用位址傳遞,而只是呼叫引數的資料進行其他計算並不需要修改資料本身宜用數值傳遞。

14樓:

傳值呼叫的特點:1形參與實參占用不同的記憶體單元2單向傳遞(在被調函式中無法改變主調函式中的任何變數值)注意:函式呼叫時,實參的值是基本資料型別、結構體資料型別,即整型、實型、字元型、陣列元素等,可以是常量、變數或表示式。

但不能是陣列名或指標等型別。

傳址呼叫的特點:1,形參與實參占用同樣的儲存單元; 2「雙向」傳遞; 3實參和形參必須是位址常量、變數或表示式。方式:函式呼叫時,將資料的儲存位址作為引數傳遞給形參

c語言的傳值與傳指標的問題,大一c語言題目,形參實參與指標的問題

星月小木木 c語言中指標即位址,位址的傳值可以引起引數的變化。比如 x,y是取這兩個變數的位址,作用空間在main函式裡。然後函式呼叫把這兩個變數的位址傳遞到函式myadd中,在函式中的 a和 b分別是引用位址指向的變數值,等於是取到了x,y本身的值。在myadd中直接操作 a可以改變x的值。通俗來...

c陣列可以通過值引數和引用引數兩種方式傳遞給函式”的說法對否

不對。int,char或者自定義的類可以通過值引數和引用引數兩種方式傳遞給函式,陣列不行。陣列是兩種指標傳遞 void sort int a 對於指標a來說是值傳遞,對於陣列來說是指標傳遞 void sort int a 100 這種方法類似於引用,但實質上還是指標傳遞 謝3哥 當然對了 1,引用 ...

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

毋惜苼 在c語言中,實參將值傳給函式中的形參,實現了自上而下的值傳遞,就可以呼叫函式了。舉個淺顯一點的例子吧 include void main int swap int x,int y 在主函式中,將實參a,b的值傳遞給被呼叫函式中的形參x,y,即將a,b分別代入x,y中計算,即達到了呼叫的目的。...