當Function使用指標作為參數時,常常都會把宣告時和使用時的符號記錯,
這次好好記錄一下,每次搞混時就可以馬上打開網頁來複習。
一般變數作為Function參數就不說明了,
直接看Function使用指標參數的宣告,以經典的swap舉例。
.h檔
.cpp檔
使用者呼叫
結果
那如果原本要傳入的變數就已經是指標的情況呢?
我們把a宣告成指標,指向5這個常數。
可以發現,a傳給function時就不需要使用&符號了,因為a本身就代表"a指標"的位址,
而 *a 則是 a指標 指向的位址 裡面的 值。
結果如下:
再來看如何使用傳參考(reference)。
.h檔
.cpp檔
使用者呼叫
一樣的,
我們把a宣告成指標,指向5這個常數,那該如何呼叫此function?
可以發現如果 a 是指標變數的話,是沒辦法直接用 a 傳給function的,
因為這時候的 a 代表的是 a 指標的位址阿。
改成這樣:
在 a 前面加上 * 號,就是把值傳進去了,
而因為是傳參考的關係,傳進去的參數和function內部的參數都會是同一個,
因為function內部的a和b只是傳進去的參數的別名。
結果如下:
沒有留言:
張貼留言