go 语言指针
1.什么是指针?
众所周知变量是一种使用方便的占位符,用于引用计算机内存地址。普通变量存的就是值,也叫值类型。
指针是一个变量,其值是另一个变量的地址,即存储器位置的直接地址。一个指针变量可以指向任何一个值的内存地址。
2.指针定义
var var_name *var-type :var_name 变量名字 * 号用于指定变量是作为一个特定类型的指针
定义声明:
var ip * int /指向整型
var float *float /指向浮点型
3.取地址符
取地址符&
package main
import(
"fmt"
)
func main(){
var i int //定义整型变量i
var p *int //定义整型指针变量p
p = &i //把变量i的内存地址赋值给P
fmt.Printf("变量i的内存地址:%p\n",&i)
fmt.Printf("指针变量p的值:%p\n",p)
fmt.Printf("指针变量p的内存地址:%p\n",&p)
}
//运行结果:
变量i的内存地址:0xc04200e090
指针变量p的值:0xc04200e090
指针变量p的内存地址:0xc042004028
上面输入结果可以看出指针变量p的值是变量i的内存地址
4.获取指针变量指向的变量
获取指针变量指向的变量:*
package main
import(
"fmt"
)
func main(){
var i int
var p *int
p = &i
i = 100
fmt.Printf("%d\n",i)
fmt.Printf("%d\n",*p)
*p = 200
fmt.Printf("%d\n",i)
fmt.Printf("%d\n",*p)
}
//运行结果:
100
100
200
200
5.指针是引用型的
package main
import(
"fmt"
)
func change(p *int){
*p = 200
}
func main(){
var i int
var p *int
p = &i
i = 100
fmt.Printf("change之前i的值:%d\n",i)
change(p)
fmt.Printf("change之后i的值:%d\n",i)
}
//运行结果
change之前i的值:100
change之后i的值:200

浙公网安备 33010602011771号