c 學習筆記 四 函式按指標呼叫和按引用呼叫

2021-07-15 09:33:08 字數 1421 閱讀 1343

通過傳遞函式引數拷貝引數的位址到形式引數的指標方法的呼叫。函式的內部的位址是用來訪問呼叫中使用的實際引數。這意味著,對引數的更改會影響傳遞的引數。

傳遞指標的值,引數指標傳遞給函式就像任何其他的值。所以,相應的需要宣告函式的引數為指標型別,如在以下函式swap(),從而改變了兩個整型變數的值指向它的引數。

// function definition to swap the values.

void

swap

(int*x

,int*y

)

要了解更詳細的關於c++指標,請檢查c++指標的篇章。

現在,讓我們呼叫函式swap()通過指標,如下面的例子傳遞值:

#include

using

namespace

std;

// function declaration

void

swap

(int*x

,int*y

);int

main

()

當上述**放在同乙個檔案中,編譯和執行時,它產生了以下結果:

before swap, value of a :100

before swap, value of b :200

after swap, value of a :200

after swap, value of b :100

通過傳遞函式引數拷貝引數的參考成形式引數的參考方法呼叫。函式內部的參考用於訪問在呼叫中使用的實際引數。這意味著,對引數的更改會影響傳遞的引數。

要通過引用傳遞的價值,引數引用傳遞給函式就像任何其他的值。所以,相應的,需要宣告函式的引數為引用型別如下面的函式swap(),它的交換兩個整型變數的值指向它的引數。

// function definition to swap the values.

void

swap

(int&x

,int&y

)

現在,讓我們呼叫函式swap()通過引用作為在下面的示例中傳遞值:

#include

using

namespace

std;

// function declaration

void

swap

(int&x

,int&y

);int

main

()

當上述**放在同乙個檔案中,編譯和執行時,它產生了以下結果:

before swap, value of a :100

before swap, value of b :200

after swap, value of a :200

after swap, value of b :100

C 學習筆記三十 函式引數和按值傳遞

c 通常按值傳遞引數,即將數值引數傳遞給函式,函式將其賦給乙個新的變數。傳遞給函式的值被稱為實參,勇於接受傳遞值的變數 新建的 被稱為形參。函式可以有多個引數,在呼叫函式時,只需用逗號將這些引數分開即可。同樣,在定義函式時,也在函式頭中使用有逗號分隔的引數宣告列表。程式7.3 include usi...

C 中按引用傳遞 和 指標

以下是一些歸納 引用在建立的同時必須初始化,即引用到乙個有效的物件 而指標在定義的時候不必初始化,可以在定義後面的任何地方重新賦值 不存在 引用,引用必須與合法的儲存單元關聯 而指標則可以是null.引用一旦被初始化為指向乙個物件,它就不能被改變不另乙個物件的引用 位址不可變 而指標在任何時候都可以...

C 函式引數傳遞 按值和引用

c 中的資料型別.分值型別和引用型別兩大類.值型別 直接儲存資料的值,儲存在記憶體中的stack 堆疊 中 引用型別 儲存對值的引用,實際上儲存的就是乙個記憶體的位址.引用型別的儲存分成兩塊,實際值儲存在託管堆 heap 中.實際值的記憶體位址儲存在stack中 當使用引用型別時先找到stack中的...