函式傳遞引數的三種方式,以及它們的區別

2021-08-16 20:12:05 字數 804 閱讀 9899

函式傳遞引數的三種方式,以及它們的區別

1.按值傳遞(pass by value)

使用這種方式,呼叫函式本省不對實參進行操作,也就是說,即使形參的值在函式中發生了變化,實參

的值也完全不會受到影響,仍為呼叫前的值。這相當於把實參賦值乙份給形參,然後呼叫後記憶體**。

[cpp] view plain copy

#include

int sum(int x,int y)  

int main()  

2.位址傳遞(pass by pointer)

位址傳遞與按值傳遞的不同在於,它把實參的儲存位址傳送給對應的形參,從而使得形參指標和實參指

針指向同乙個位址。因此,被呼叫函式中對形參指標所指向的位址中內容的任何改變都會影響到實參。

[cpp] view plain copy

#include

int sum(int* x,int* y)  

int main()  

3.引用傳遞(pass by reference)

以引用為引數,則既可以使得對形參的任何操作都能改變相應的資料,又使得函式呼叫顯得方便、自然

。引用傳遞方式是在函式定義時在形參前面加上引用運算子「&」。引用相當於實參的別名,他和實參是同乙個變數或數值,它的改變就是實參的改變。

[cpp] view plain copy

#include

int sum(int& x,int& y)//定義引用型別

int main()  

函式引數傳遞的三種方式

問題及 1 檔名稱 my first blog.cpp 作 者 林志文 完成日期 2016年9月5日 版 本 號 v1.0 問題描述 交換兩個整型變數的swap函式的三個版本 輸入描述 兩個整數 程式輸出 交換後的兩個整數 includevoid myswap int p1,int p2 void ...

引數傳遞的三種方式

引數傳遞的三種方式 按值傳遞 include using namespace std void swap int a,int b int main 缺點 記憶體開銷很大。對於傳遞一般引數 如果傳遞的參數量過多,例如8000個引數,則需要在棧中複製8000個引數傳遞過去,棧只有2m的空間,這樣的話棧的...

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

函式引數傳遞方式一 值傳遞 格式 void swap int a,int b void main 函式引數傳遞方式二 位址傳遞 格式 void swap int a,int b void main 函式引數傳遞方式三 引用傳遞 注意 引用傳遞在c中不可用,僅c 支援 格式 void swap int...