2010-12-06 73 views
0

可能重複:
Difference between pointer variable and reference variable in C++C++引用/指針

我看到這個簡單的代碼的一天,而且我認爲自己與指針初學者,雖然我有大約一年一半的C++經驗。反正...

請告訴我

int a = 0; 
int &b = a; 

int a = 0 
int *p = &a; 

很明顯的區別,對持有的地址,而B是一個參考,這意味着我可以改變的價值一個與b。但我也可以用p做同樣的事情。那麼有什麼優點或缺點?

回答

2
  • 的引用必須總是被初始化
  • 的引用不能爲空
  • 一旦被初始化,參考不能被改變爲一個不同的對象的別名。
+0

引用可以爲null。 int * a = 0; int&b = * a; – 2010-12-06 20:18:35

0

我認爲這取決於您計劃如何在程序中使用變量。這兩個陳述似乎都做同樣的事情(在這個有限的範圍內)。

第一種方法似乎是(在我看來)不好的編程習慣,因爲在程序後面可能不明顯,改變b的值也會改變a的值。在第二種情況下,至少已知p是一個指針,所以你應該期望改變它指向的值所帶來的副作用。