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

2021-09-05 01:20:23 字數 595 閱讀 1956

在呼叫函式時,需要將變數值傳遞給函式引數,即給函式引數賦值,在c++中函式引數值傳遞有三種方式:按值傳遞、指標傳遞(引數位址傳遞)、引用傳遞。下面簡單介紹一下這三種方式的異同。

一、按值傳遞

按值傳遞實質上就是將傳遞的變數值拷貝乙個副本給函式引數,函式引數對副本進行的運算不會影響到傳遞變數本身。但這種傳遞方式會浪費時間在副本的拷貝上,因此適用於體量不大的變數,對於資料量大的陣列、結構體、類等,按值傳遞效率低下。

二、引數位址傳遞

引數位址傳遞也叫做指標傳遞,程式將指向變數的位址的指標傳遞給函式引數,函式引數通過指標直接對變數進行操作,這種操作直接會改變原始變數的值,與按值傳遞相比,這種傳遞方法效率更高。

三、引用傳遞

引用傳遞的前提是將所有變數均看做乙個物件,而引用則直接將變數物件的別名交付給函式引數,即相當於函式引數等價於變數物件的等價的別名,與變數原始名稱一樣,對變數擁有同等的使用許可權。

三種傳遞方式對比

void swap(int p, int q)

void swap(int *p, int *q)

void swap(int &p, int &q)

函式引數值傳遞

以c c 為例,函式引數傳遞一般來說有三種方式 值傳遞,指標傳遞,引用傳遞。其中引用傳遞屬於c 對c函式引數傳遞方式的擴充套件。實際上c語言的所有引數都以 傳值呼叫 方式進行傳遞,這意味著函式獲得的是引數值的乙份拷貝,函式可以放心的修改這個拷貝值,而不會影響實參。c和指標 值傳遞 值傳遞是傳遞乙個實...

C C 中函式值的傳遞方式

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 ...

C 函式引數 值傳遞與引用傳遞

以前我們在c語言中函式引數傳遞過程中,如果我們想要讓當a函式作用域中的變數經過b函式處理之後的數值仍然在a函式中生效,這個時候函式引數的傳遞時需要引用方式去傳遞,方式如下 include 函式引數為指標,通過修改指標裡面的內容達到對main中b變數的修改 void func int a int ma...