傳值,傳址和傳引用

2021-10-03 18:20:15 字數 1167 閱讀 5597

傳值方式:將實參的值拷貝給函式或方法,在函式內對形參進行操作,操作的物件是實參的拷貝,對實參本身沒有影響,在函式結束返回後,形參被丟棄釋放,實參的內容不會被改變。

c++一條基本原則:在預設情況下,引數只能以值傳遞的方式給函式,被傳遞到函式的只是變數的值,永遠不會是變數本身。

void

exchange

(int x,

int y)

exch

ange(a,b);在呼叫過程中,函式隱含的把實參ab的值分別傳給了形參xy, 函式中的操作只是對形參的操作,沒有對實參進行任何操作,因此,實參ab的值是不變的。

傳址方式:將實參的位址傳遞給函式,在函式內對形參進行操作等同於對實參進行相同的操作,在函式呼叫結束返回後,形參被釋放,實參的內容是對形參進行操作後的結果。

繞開值傳遞問題的第一種方法指標傳遞,是向函式傳遞變數的位址取代它的值。

void

exchange

(int

*px,

int*py)

int a=

4,b=5;

exchange

(&a,

&b);

將ab的位址傳遞給函式,對*px,*py的操作即是對a,b變數本身的操作。可以實現a,b的值交換。

交換void swap(int *x, int *y)

或用異或

void swap(int *x, int *y)

繞開值傳遞問題的第二種方法引用傳遞,以引用傳遞方式傳遞輸入方式,跟傳址的目的一樣,都是把位址傳給函式,但語法不同。

void

exchange

(int

&x,int

&y)int a=

3,b=4;

exchange

(a,b)

;

僅形式引數的格式與值傳遞不同,內部定義域呼叫與值傳遞完全相同,可以實現ab值得對調。

因為在x,y 前有乙個取位址符號&,在呼叫exchang(a,b)時會用替換x,y,稱xy引用了變數ab,在函式內部便是對實參ab進行操作了,函式內部可以直接修改a,b的值。

引用即物件的別名,傳物件的引用,用於把乙個物件的位址作為引數傳遞過去,而不是物件本身。引用傳遞,避免了一次實參到形參的拷貝,提高了效率。

傳值 傳址和傳引用

在編寫個人函式的時候,你將受到c 中一條基本原則的限制 在預設的情況下,引數只能以值傳遞的方式給函式。這句話的理解是 被傳遞到函式的只是變數的值,永遠不會是變數本身。舉例如下 include void changeage int age,int newage 如果想要實現計畫功能,需要怎麼改?mai...

C 傳值 傳址 傳指標 傳引用

相關概念 c 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資料傳遞...

指標 引用 傳值 傳址

個人總結 首先定義 struct binarytreenode 定義變數 1 binarytreenode ptreenode 2 binarytreenode n ptreenode 3 binarytreenode k 4 binarytreenode m k 引用變數必須初始化 定義 位址也稱...