Go语言 之变量内存与地址
package main import ( "fmt" ) func main() { var a int = 10 //每个变量都有两层含义,变量的内存和变量的地址 fmt.Printf("a = %d\n", a) //变量的内存 10 fmt.Printf("a = %v\n", &a) //变量的地址 0xc042060080 //保存某个变量的地址,需要指针类型, *int保存int的地址, **int保存*int的地址 //声明(定义),定义只是特殊的声明 //定义一个变量p,类型为*int var p *int p = &a fmt.Printf("p = %v, &a = %v\n", p, &a) *p = 666 //*p操作的不是p的内存,是p指向的内存(其实就是a) fmt.Printf("*p = %v, a = %v\n", *p, a) }