美文网首页
go 1.6 如何优雅的使用go指针

go 1.6 如何优雅的使用go指针

作者: 秸秆混凝烧结工程师 | 来源:发表于2021-12-10 11:47 被阅读0次

    package main

    import "fmt"

    func main() {
    /*
    var name string = "我是Golang"
    这个 name 是一个普通的变量,当我们调用的时候,机器会给我们返回name所在的地址上的值,
    但是出于某些未知的理由我们将这个存储name变量值的地址赋值给其他的变量 比如pointer,此时我们称pointer为指针变量

    pointer := &name 此时的pointer的变量只是存储了内存地址,那么这样的变量就是 指针变量
    
    指针变量创建方法
    ===== 方法一=====
    var  a =1
    pa := &a
    
    ====方法二====
    
    先创建内存,再写入值
    a := new(string)  // 创建
    *a = "Golang" // 赋值
    
    ===== 方法三=====
    
    a := 1
    var pa *string
    pa = &a
    
    注意;
    
    & :从一个普通变量中取得内存地址
    
    *:1.当*在赋值操作符(=)的右边,是从一个指针变量中取得变量值,
       2.当*在赋值操作符(=)的左边,是指该指针指向的变量
    */
    

    a := 1

    pa := &a
    fmt.Printf("pa is type %T\n",pa)

    pb := new(string)
    *pb = "Golang"
    fmt.Printf("%s\n",pb) // 这里是取值的 在前 如果不加 返回的是指针地址

    c :=1
    var pc int
    pc = &c
    fmt.Println(pc) //这里由于默认是指针 自然返回的就是地址了
    fmt.Println(
    pc) //这里是取值的
    }

    image.png

    结果:

    image.png

    相关文章

      网友评论

          本文标题:go 1.6 如何优雅的使用go指针

          本文链接:https://www.haomeiwen.com/subject/ivjcfrtx.html