Pointer 是程式語言中的一類資料類型及其物件或變數,用來表示或儲存一個記憶體位址,這個位址的值直接指向(points to)存在該位址的物件的值。
Go 支持 pointer,指標的聲明方式為 *T , 同樣的支持多級指標 **T
可以藉由變數名稱前加 "&" 來獲取變數的地址
由於支持 GC,在 Go語言當中不支持指標的運算
使用"&" 來獲取指標位址
使用 "*" 獲取指標所指向的值
package main
import (
"fmt"
)
func main() {
var a int = 1
fmt.Println("a的地址", &a)
//ptr 是個指標的變數
//ptr 的類型為 *int
var ptr *int = &a
fmt.Printf("ptr=%v\n", ptr)
fmt.Printf("ptr的地址%v\n", &ptr)
//獲取指針類型的值 使用 *
fmt.Printf("ptr指向的值%v\n", *ptr)
//將指標指向的值更改為 7
*ptr = 7
fmt.Println(a)
}