2013-07-22 41 views

回答

5

參考不能是NULL而指針可以。這基本上是唯一的區別。一般來說,這是一個實現細節,因此從理論上講,按引用傳遞並且按指針傳遞可能與「底層」不同,然而,它們幾乎總是以相同的方式實現。

+0

幾天前我注意到了另一個區別 - 雖然它隻影響回報:http://herbsutter.com/2008/01/01/gotw-88-a-candidate-for-the-most-important-const/ - 非常有趣和令人驚訝。 –

4

主要區別在於引用不可能爲null(在格式良好的程序中),所以不需要測試null。除此之外,引用通常是在指針的內部實現的,因此行爲將類似。

除此之外,還有風格部分問題。在這種情況下,不同的風格會更喜歡一種或另一種風格。我一直在那些喜歡這兩種風格的公司,第一個是因爲它在C++中是習慣用法,第二個是因爲它似乎使它更加明確(至少對於某些程序員來說),如果參數被傳遞,函數將會改變參數指針。我個人的感覺是,這更像C程序員的慣例,但它仍然存在。