預設情況下,引數只能以值傳遞的方式給函式。
這句話的理解是,被傳遞到函式的只是變數的值,永遠不會是變數本身。
下面來看一段示例**:
#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 三種傳遞引數方式 傳引數的值 稱值傳遞,簡稱傳值 傳引數的位址 稱位址傳遞,簡稱為傳址 和引用傳遞 稱為傳引用 相應的函式傳值呼叫,傳址呼叫和傳引用呼叫 形參 實參 函式定義時參數列中的引數稱為形式引數,簡稱形參 函式呼叫時參數列中的引數稱為實際引數,簡稱實參。實參和形參之間的資料傳遞...