
參數傳遞中的指標與引用
將指標與引用視為函數參數,提供的程式碼片段確實具有功能相似之處:
1 2 3 | int foo(bar* p) {
return p->someInt();
}
|
登入後複製
和
1 2 3 | int foo(bar& r) {
return r.someInt();
}
|
登入後複製
但是,兩者之間有細微的區別:
-
空指針:指針>指針參數允許傳遞nullptr,而引用參數不能指派nullptr。
-
最佳化: 在某些情況下,編譯器可能會最佳化指標上的參考參數,從而減少開銷。
在 C 中,有意不使用指標明確實作引用。相反,它們充當引用變數的“同義詞”。這個概念可以在不需要指標的地方進行編譯器最佳化。
指標和引用之間的其他顯著差異包括:
-
無法重新分配:引用無法重新分配,而指標可以。
-
位址: 取得指標的位址回傳指標本身的位址,取得引用的位址回傳被引用物件的位址。
以上是指標與引用:何時在函數參數中使用指標?的詳細內容。更多資訊請關注PHP中文網其他相關文章!