【Golang系列】-指针
2022-03-16
指针
函数传参都是值拷贝,当我们需要修改某个变量的时候,我们可以创建 一个指向该变量地址的指针变量,传递数据使用指针,而无需拷贝数据
类型指针不能进行 偏移和计算
go语言中的指针操作非常简单,只需要记住两个符号:&(取地址)和*(根据地址取值)
指针地址和指针类型
- 每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置,go语言中使用&字符放在变量前面对变量进行取地址操作。
- go语言中的值类型,(int,float,bool,string,stuct)都有对应的指针类型,如*int,*int64,*string
指针语法:
一个指针变量指向一个值的内存地址
要使用之前需要先声明,语法:
var var_name *var-type
var_name:指针变量名
var-type:指针类型
*:用于指定变量是作为一个指针
指针声明示例:
var ip *int
var fp *float32
指针使用示例:
package main
import "fmt"
func main() {
var a int = 20 //声明实际变量
var ip *int //声明指针变量
ip = &a //指针变量的存储地址
fmt.Println(&a)
fmt.Println(ip)
fmt.Println(*ip) //使用指针访问值
}
结果:
[Running] go run "/Users/lihui/Desktop/gocode/src/chapter07/demo05.go"
0xc0000ae008
0xc0000ae008
20
[Done] exited with code=0 in 0.615 seconds