1.golang中,指針是一種類型,指向變量所在的內存單元(不是內存地址)。
申明: 在變量名前加上星號字符,比如 *age ,指向變量age所在的內存單元
2.& :獲取變量在計算機內存中的地址, &age,取出變量age所在內存地址,一般地址是十六進制。
3: 申明指針*age, 打印指針內存單元的值 **age.如下面 x *int , *x就是指針所對應的值。
package main
import (
"fmt"
"reflect"
)
func main(){
k:=40
fmt.Println(k)
fmt.Println(say("hello,world","lf"))
fmt.Println(reflect.TypeOf(k)) //檢查變量類型
fmt.Println(&k) // 獲取變量在計算機內存中的地址,可在變量名前面加上&字符。
// &k 引用的是變量k的值,值所在的內存地址
showMemoryAddress(&k) //返回的地址是相同的
}
func showMemoryAddress(x *int){ // *int參數類型位指向整數的指針,而不是整數
fmt.Println(*x) //本身就是指針,打印地址不需要 &這個符號,如果想使用指針指向的變量的值,而不是其內存地址,可在指針變量前面加上星號
return
}
func say(param,tt string) string{
return param+"--"+tt
}