首頁  >  文章  >  後端開發  >  golang 引用和指標的區別

golang 引用和指標的區別

(*-*)浩
(*-*)浩原創
2019-12-27 13:35:119471瀏覽

golang 引用和指標的區別

包括 C、C 在內的一些語言支援指標。其他語言包括 C 、Java、Python、Ruby、Perl 和 PHP 都支援引用。從表面上看,引用和指標非常相似,它們都用來讓一個變數提供對另一個變數的存取。                                 (建議學習中:go

時為他們一樣提供了許多相同的功能,所以常常不清楚它們各自的內部機制有什麼不同。在本文中,我將說明指標和引用之間的差異。

為什麼這很重要

指標是 Go 語言的核心。 大多數程式設計師都是在上面提到的一種語言的基礎上學習 Go 的。因此,理解指標和引用之間的差異對於理解 Go 至關重要。

即使你使用過具有指標的語言,Go 對指標的實作也不同於 C 和 C ,因為它保留了引用的一些優秀屬性,同時保留了指標的功能。

本文的其餘部分旨在廣泛地討論引用的概念,而不是具體的實現。我們將使用 Go 作為指標的參考實作。

有什麼不同?

指標變數儲存的是另一個變數的位址。

引用變數指向另一個變數。

為證明我們的觀點,用 C 舉個例子,它同時支持指標和引用。

int i = 3;2int *ptr = &i;3int &ref = i;

第一行定義了變數 i;第 2 行定義了一個指向變數 i 記憶體位址的指標 ptr;第 3 行定義了一個指向變數 i 的引用 ref。

不僅操作符不同,而且使用的方法也不同。對於指針,必須使用 * 操作符來解引用。對於引用,不需要任何操作符。據了解,你傾向於使用引用的變數。

繼續我們的範例,下面兩行程式碼都會把 i 的值改為13。

ptr = 13;
ref = 13;

你可能會問,如果我嘗試直接存取變數 ptr 而不使用解引用。這就引出了指標和引用之間的第二個關鍵差異。指標可以重新分配,引用不能。換句話說,指標可以被分配另一個不同的位址。

以上是golang 引用和指標的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn