- Go 语言中的指针操作非常简单,我们只需要记住两个符号:&(取地址)和 *(根据地址取值)。
- 每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置。Go 语言中使用&字符 放在变量前面对变量进行取地址操作。
- Go 语言中的值类型(int、float、bool、string、array、struct)都有对应的指针类型,如:*int、*int64、*string 等
package main import "fmt" func main() { //1.定义指针 其实和PHP的&一样 都是修改的内存地址指定的值 //aa(指针变量)表示指针的内存地址 *aa 表示获取指针对应的值 // new方法给指针变量分配内存空间 返回的是指针类型数据 var aa = new(int) fmt.Println(aa) //0xc00000a0b8 *aa = 100 fmt.Println(*aa) // 100 /*错误写法 指针是引用数据类型 var a *int *a = 1 fmt.Println(*a) */ //修正写法 var b *int b = new(int) *b = 200 fmt.Println(*b) // 200 // 2.&获取变量的地址 cc := 100 bb := &cc // &cc 表示获取cc的内存地址 fmt.Println(bb) //0xc00000a100 fmt.Println(*bb) // 100 //通过指针变量操作cc的值 *bb = 200 fmt.Println(cc) // 200 //总结 &:取的是地址 *取的是值 }