【鏈塊技術23期】區塊鏈基礎語言(十五)——Go語言指針

           

 

原文鏈接:區塊鏈基礎語言(十五)——Go語言指針

 

一、基本概念

1.1 內存地址

電腦存儲器由一個個存儲單元構成,爲了對存儲器進行有效的管理,就需要對各個存儲單元編號,即給每個單元賦予一個地址碼,這叫編址。計算機裏每個內存單元的地址碼就是這個內存單元的內存地址。

1.2 指針變量

通過內存單元的內存地址能找到這個內存單元,那麼這個內存地址叫作指針(Pointer),而存放該地址的變量(通常簡寫爲ptr),叫做指針變量。

1.3 變量和指針變量的關係

程序中通過定義一個變量來申請一塊數據存儲空間,變量名即對一塊數據存儲空間命名。而在該變量前加一個取地址符“&”就可以獲得該存儲空間的地址。

指針變量存儲了內存地址。在指針變量前加一個取值運算符“*”就可以獲得內存單元儲存的值。

指針和變量的關係如圖1所示。

指針和變量的關係如以下代碼所示:

1.4 空指針

指針被定義後卻沒有分配到任何變量的地址,它的值爲nil,而非NULL。

二、指針的基本操作

2.1 指針變量的聲明

聲明指針變量的關鍵詞是var。指針變量存儲的是內存地址,其指向的內存空間裏存儲的值的類型爲Type,則指針變量類型爲*Type。聲明格式如下:

2.2 指針變量的使用流程

指針變量聲明-------->爲指針變量賦值-------->訪問指針變量中地址指向的值。

三、new函數

new函數是一個用來分配內存的內建函數(就是由語法規定存在的函數),其格式爲:

new函數並不初始化內存,傳入的參數是類型(Type),返回的是指向新分配內存所屬類型的零值的指針(*Type),即這塊內存空間的地址(該內存空間存儲的是該類型的零值)。

四、指針作爲函數參數

指針作爲函數參數時,爲引用傳遞。自定義函數對形參進行的修改,也會影響到實際參數的值。

五、指向指針的指針

5.1 指向指針的指針變量

一個指針變量存放的又是另一個指針變量的地址,則稱這個指針變量爲指向指針的指針變量。

如圖所示,第一個指針存放第二個指針的地址,第二個指針存放變量的地址。

5.2 指向指針的指針變量的聲明格式

指向指針的指針變量的聲明格式如下:

示例如下:

 

參考資料

[1] https://baike.baidu.com/item/%E6%8C%87%E9%92%88/2878304?fr=aladdin

鏈塊學院:專注於區塊鏈技術研發與教育

 

   —————END—————

 

本文完,獲取更多資訊,敬請關注區塊鏈工程師。

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章