C 入門筆記 傳值 傳址和引用

2021-09-07 05:37:43 字數 1105 閱讀 9631

預設情況下,引數只能以值傳遞的方式給函式。

這句話的理解是,被傳遞到函式的只是變數的值,永遠不會是變數本身。

下面來看一段示例**:

#include void changeage( int age, int newage );

main()

void changeage( int age, int newage )

輸出結果如下所示:

my age is 24

in this , my age is 25

now my age is 24

可以看出, main函式中的age和changeage中的age是不同的,雖說名字一樣,但完全不一樣。如果要通過changeage來改變main函式的age中的話該如何修改呢?

繞開「值傳遞」問題的第一種方法是向函式傳遞變數的位址取代它的值。我們說c語言的強大,很大部分就在於它的靈活,而它的靈活很大部分就是可以利用指標進行委婉地修改。

將上述程式修改如下:

#include void changeage( int *age, int newage );

// 如果想要實現計畫功能,需要怎麼改?

main()

void changeage( int *age, int newage )

結果是:

my age is 24

in this , my age is 25

now my age is 25

下面來看一下引用傳遞的概念。設想,如果事先知道某個函式的引數只能接受乙個位址,能不能使用某種約定使得在呼叫該函式時不需要使用指標的語法呢?

於是乎,以引用傳遞方式傳遞輸入方式的概念因此而產生了。其實他跟我們位址的傳遞是一樣的,都是把位址傳遞給函式,但語法不同,更加容易使用了。

#include void swap( int &x, int &y );//宣告,這裡我要接受的是乙個位址

main()

void swap( int &x, int &y )

未完待續……

傳值,傳址和傳引用

傳值方式 將實參的值拷貝給函式或方法,在函式內對形參進行操作,操作的物件是實參的拷貝,對實參本身沒有影響,在函式結束返回後,形參被丟棄釋放,實參的內容不會被改變。c 一條基本原則 在預設情況下,引數只能以值傳遞的方式給函式,被傳遞到函式的只是變數的值,永遠不會是變數本身。void exchange ...

傳值 傳址和傳引用

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

C 傳值 傳址 傳指標 傳引用

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