先說結論
使用指標的情況:
使用引用:
它們的異同
相同點
不同點
char
*pc =0;
char
&rc =
*pc;
// 引用指向空值
string s1
("foo");
string s2
("bar");
string& rs = s1;
string *ps =
&s1;
rs = s2;
// rs仍引用s1,實際是把s2賦值給s1,所以s1現在的值是 bar
ps =
&s2;
// ps現在指向s2,s1保持不變
vector<
int>v(
10);v[
5]=10
;// 操作符 的返回值為引用,被賦值為10
// 如果操作符 返回指標,語句如下:
*v[5]=
10;// 容易被誤解為向量指標
總結
雖然指標和引用的功能相同,但在使用細節上還是有需要思考的地方,混亂使用可能造成嚴重的後果。
理清它們的區別與聯絡後,根據實際需要選用即可。
參考資料
《more effective c++》
c 中 指標的指標 與 指標的引用
我的生活,我的點點滴滴!今天在看一些c 開源 時,無意間看到下面這段 突然發覺看起好陌生,完全不懂這樣用的意義是什麼呀?void director popscene const std function callback else auto callback scene scene director...
C 中 指標引用)與 (指標)的區別
指標傳遞引數本質上是值傳遞的方式,它所傳遞的是乙個位址值。值傳遞過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值...
C 中指標 與指標引用 的區別
c 中 指標引用 與 指標 的區別 指標是乙個存放位址的變數,指標引用指的是這個存放位址的變數的引用。c 中如果引數不是引用的話,會呼叫引數物件的拷貝建構函式,所以如果有需求想改變指標所指的物件即想要改變指標變數裡存放的位址,就要使用指標引用。下面用乙個測試例子和過程圖結合進行說明 分析 在test...