美文网首页
Golang pointer

Golang pointer

作者: 并肩走天涯 | 来源:发表于2014-12-16 15:30 被阅读322次

Golang pointer

  • 指针,保存了变量的内存地址,可以让不同的变量共享同一片内存
    • 在使用 goroute 去程并发编程时,要管理好共享的内存,避免冲突。

      • slice 也含有一个指向底层数组的指针

      • 不使用指针的类型是安全的,因为它们的变量在赋值时都会复制,不存在内存共享的问题。

          var i int
          var p *int
          var pp **int
          i = 0
          p = &i
          pp = &p
          *p++    // *p++ == (*p)++,++ 只能用于整数类型,是单独的语句
          fmt.Println(i, p, *p, pp, *pp)
        
    • 类型 *T 是指向类型 T值的指针;其初始值是 nil

            var p *int  // int 的指针类型
            var p **int // int 指针的指针类型
      
    • 生成指针变量 & 符号会生成一个指向其作用对象[变量]的指针

            // & 取变量的指针,&p 是变量 p 的指针
            & 是取值运算符,&s 表示 s 的地址,其中 s 是变量
            i := 42
            p = &i
      
    • 指针变量对应的变量的值 * 符号,表示指针指向的底层的值 - “间接引用”或“非直接引用”

            // * 取指针变量的值,*p 是变量 p 指向的值
            fmt.Println(*p) // 通过指针 p 读取 i
            *p = 21         // 通过指针 p 设置 i
      
    • 总结

            如同 k: v 结构中的 k - &, v - *
            key: value
            var i int
            var p *int
            p = &i  // key, 也就是开拓出来的内存空间
            *p = 21 // value, 也就是内存空间里的值
      

相关文章

  • Go 语言指针 图文教程

    https://www.quanxiaoha.com/golang/golang-pointer.html[htt...

  • Golang pointer

    Golang pointer 指针,保存了变量的内存地址,可以让不同的变量共享同一片内存在使用 goroute 去...

  • golang unsafe 包

    阅读原文 golang unsafe 包 ArbitraryType 和 Pointer Go 语言是强类型语言,...

  • Golang——指针pointer

    地址:内存地址,用字节描述指针:指向内存地址,带类型。不可操作,只读。string类型指针和int类型指针是不一样...

  • golang 如何通过unsafe.Pointer uintpt

    主要是对unsafe.Pointer uintptr的一个应用实例,顺便了解golang的string与slice...

  • (十四)golang unsafe.Pointer

    golang 的指针Go语言是个强类型语言。也就是说Go对类型要求严格,不同类型不能进行赋值操作。指针也是具有明确...

  • 【golang】unsafe.Pointer介绍

    uintptr 一个足够大的无符号整型, 用来表示任意地址。可以进行数值计算。 unsafe.Pointer 一个...

  • 设置元素不可点击

    cursor:pointer; pointer-events: none; pointer-events:auto...

  • Golang对象中的value与pointer

    开宗明义 不是我喜欢装,要用什么value与pointer,而不说值与指针。实在是后面还要讲receiver时,实...

  • iOS Tagged Pointer

    Tagged Pointer 介绍 苹果对于Tagged Pointer特点的介绍: Tagged Pointer...

网友评论

      本文标题:Golang pointer

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