C C 中函式值的傳遞方式

2021-08-15 13:34:09 字數 756 閱讀 6277

c++中函式值的傳遞方式為三種:值傳遞(pass by value)、指標傳遞(pass by pointer)、引用傳遞(pass by reference)

void fun(char c) //---pass by value

void fun(char *str) //---pass by pointer

void fun(char &str) //---pass by reference

注:a.如果輸入引數是以值傳遞的話,最好使用引用傳遞代替,因為引用傳遞省去了臨時物件的構造和析構,可以減少耗費時間與空間;

b.函式的型別不能省略,就算沒有也要加個void;

1.值傳遞:有乙個形參向函式所屬的棧拷貝資料的過程,如果值傳遞的物件是類物件或是大的結構體物件,將耗費一定的時間和空間。

2.指標傳遞:同樣有乙個形參向函式所屬的棧拷貝資料的過程,但拷貝的資料是乙個固定為4位元組的位址。

3.引用傳遞:同樣有上述的資料拷貝過程,但其是針對位址的,相當於為該資料所在的位址起了乙個別名。

效率上講,指標傳遞和引用傳遞比值傳遞效率高。一般主張使用引用傳遞,**邏輯上更加緊湊、清晰。

引用傳遞做函式引數」是c++的特性,c語言不支援。

以下例子**:

值傳遞:

void fun(int x)

void main(void)

void main(void)

void main(void)

c 中函式引數值傳遞的方式

在呼叫函式時,需要將變數值傳遞給函式引數,即給函式引數賦值,在c 中函式引數值傳遞有三種方式 按值傳遞 指標傳遞 引數位址傳遞 引用傳遞。下面簡單介紹一下這三種方式的異同。一 按值傳遞 按值傳遞實質上就是將傳遞的變數值拷貝乙個副本給函式引數,函式引數對副本進行的運算不會影響到傳遞變數本身。但這種傳遞...

C C 中函式引數的三種傳遞方式

一 值傳遞 這種傳遞方式中,實參和形參是兩個不同的位址空間,引數傳遞的實質是將原函式中變數的值,複製到被呼叫函式形參所在的儲存空間中,這個形參的位址空間在函式執行完畢後,會被 掉。整個被呼叫函式對形參的操作,只影響形參對應的位址空間,不影響原來函式中的變數的值,因為這兩個不是同乙個儲存空間。二 引用...

C C 中函式引數的三種傳遞方式

一 值傳遞 這種傳遞方式中,實參和形參是兩個不同的位址空間,引數傳遞的實質是將原函式中變數的值,複製到被呼叫函式形參所在的儲存空間中,這個形參的位址空間在函式執行完畢後,會被 掉。整個被呼叫函式對形參的操作,只影響形參對應的位址空間,不影響原來函式中的變數的值,因為這兩個不是同乙個儲存空間。二 引用...