C++三種不同的值傳遞形式

1.在內存中有地址和值兩種,

值傳遞只是把變量的值複製給形參

引用傳遞只是把變量的地址複製給形參,在另一個函數中直接操作地址

指針傳遞是在一個形參中將實參的地址賦值給形參的值

 

指針傳遞與引用傳遞的區別:

(指針傳遞本質上時值傳遞)

1.引用傳遞在使用前必須被初始化,指針傳遞則可以在任意時候被初始化

2.指針傳遞是一個指針可以指向別的變量,也可以指向NULL,而引用傳遞只能使用形參傳遞過來的地址變量

 

特殊用法:當在一個局部函數中只能返回一個值給主函數,實際需要返回多個函數值,這時就可以使用引用傳遞或者指針傳遞。

 

★相同點:

●都是地址的概念;

指針指向一塊內存,它的內容是所指內存的地址;而引用則是某塊內存的別名。

★不同點:

●指針是一個實體,而引用僅是個別名;

●引用只能在定義時被初始化一次,之後不可變;指針可變;引用“從一而終”,指針可以“見異思遷”;

●引用沒有const,指針有const,const的指針不可變;(具體指沒有int& const a這種形式,而const int& a是有     的,  前者指引用本身即別名不可以改變,這是當然的,所以不需要這種形式,後者指引用所指的值不可以改變)

●引用不能爲空,指針可以爲空;

●“sizeof 引用”得到的是所指向的變量(對象)的大小,而“sizeof 指針”得到的是指針本身的大小;

●指針和引用的自增(++)運算意義不一樣;

●引用是類型安全的,而指針不是 (引用比指針多了類型檢查)

發佈了12 篇原創文章 · 獲贊 2 · 訪問量 1252
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章