引用的概念
為一個變量指定一個別名
引用的規則
- 用之前要初始化
- 使用了之后就不能修改指向了(對一個引用賦值實際上是對原本被引用的那個值進行賦值,而不是改變指向)
- 一個對象可以同時有多個引用
問:引用可以完全代替指針嗎?
答:不可以,例如鏈表的尾指針時刻都要變的,引用不可以修改指向(java和python的就可以)
常引用
如果引用的目標是常量的話,那自身也要是常屬性的(因為引用的對象如果是常屬性的,就代表不能被修改值,所以引用作為他的別名,也不能修改值)
引用的使用場景
做參數&做返回值
注意事項
- 返回值是引用時,引用指向的數據如果出了函數就銷毀的話,會出現野引用問題(引用指向的內容已經不再安全)
- 返回值是引用并且還用引用來接收(如上,而且還在持續使用不安全的內容)
引用的好處
在一些使用指針時理解會比較困難的地方使用引用,可以方便理解
做返回值時:
做參數時:
引用和指針的區別
語法上和底層中: