中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

go語言中引用和指針有什么區別

發布時間:2020-06-10 18:01:32 來源:億速云 閱讀:1768 作者:鴿子 欄目:編程語言

包括 C、C++ 在內的一些語言支持指針。其他語言包括 C++、Java、Python、Ruby、Perl 和 PHP 都支持引用。從表面上看,引用和指針非常相似,它們都用來讓一個變量提供對另一個變量的訪問。

由于兩者都提供了許多相同的功能,所以常常不清楚它們各自的內部機制有什么不同。在本文中,我將說明指針和引用之間的區別。

為什么這很重要

指針是 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 引用和指針的區別的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大石桥市| 隆化县| 正宁县| 喀喇沁旗| 原平市| 波密县| 永城市| 沛县| 遵义市| 鱼台县| 海伦市| 佛坪县| 伊金霍洛旗| 西宁市| 清徐县| 安阳市| 济源市| 昭觉县| 柯坪县| 平陆县| 天镇县| 准格尔旗| 徐州市| 进贤县| 东明县| 荆门市| 武安市| 土默特左旗| 丹东市| 曲水县| 广汉市| 仁寿县| 大丰市| 武胜县| 河津市| 苍梧县| 秀山| 监利县| 浪卡子县| 乐清市| 禹城市|