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)
}

 

posted @ 2019-07-02 10:58  样子2018  阅读(1628)  评论(0编辑  收藏  举报