golang指標講解

2021-10-01 07:14:23 字數 1081 閱讀 6970

//基礎型別指標

var ps *string

var pi *int

var pf *float64

var pb *bool

//結構體指標

type person struct

var pperson *person

在把指標使用的得心應手之前,首先要熟悉go語言中這兩個操作符:*與&。

先說說&。&變數名,表示對變數取位址。&可以理解為乙個方法簡寫,這個方法的唯一引數是變數名,返回值是乙個記憶體位址(即乙個指標型別變數)。&的使用如下:

//先定義指標

var ps *string

//再定義變數

var s string

s = "i am string"

//通過&操作符取s的記憶體位址,位址儲存到指標ps中

ps = &s

fmt.printf("value of s:%s\n",s)

fmt.printf("value of ps:%v\n",ps)

以上**的執行結果:

value of s:i am string

value of ps:0xc42007a1c0

需要注意的一點就是指標與變數必須是同型別的。你不能把乙個int型別的變數位址賦給乙個string型別的指標。 

再來說說*。*在指標的使用中有兩個角色:

其一,作為指標型別的定義符,本文開篇就用到了

其二,與&符做相反操作,&變數名是對變數取位址,而*指標名則是對指標位址取其儲存的內容。同樣可以理解*是乙個方法的簡寫,此方法唯一引數是乙個指標型別變數(也就是乙個記憶體位址),返回值是這個位址儲存的變數真實值。接上段**:

fmt.printf("ps point to:%s\n",*ps)
輸出:

ps point to:i am string

Golang教程 指標

指標是儲存乙個變數的記憶體位址的變數。在上圖中,變數b的值是156,儲存在位址為0x1040a124的記憶體中。變數a儲存了變數b的位址。現在可以說a指向b。乙個指標變數指向了乙個值的記憶體位址。類似於變數和常量,在使用指標前你需要宣告指標。指標宣告格式如下 var var name var typ...

golang 指標與記憶體

go指標 1.go指標提供了控制資料結構的指標的能力,但不能進行指標運算,go語言允許控制特定集合的資料結構,分配的數量以及記憶體訪問模式。2.預設值 nil,沒有 null 常量 3.不支援指標運算,不 支援 運算子,直接 用 訪問目標成員 4.go語言的取位址符是 放入乙個變數前使用就會返回相應...

golang 指標傳參

函式指標 是指向函式的指標變數,即本質是乙個指標變數。指標函式 本質是乙個函式。函式返回型別是某一型別的指標。package main import fmt func main 1.定義乙個函式,求兩個數的和 該函式的型別 func int,int int func add a,b int int ...