dpxw7293 2015-10-20 17:17
浏览 144
已采纳

在golang中,&和*有什么区别?

Can someone explain the difference between & and * in GO lang .. and provide examples of when & and * would be used to illustrate the difference? From what I have read, they both relate to accessing a variables memory location however i'm not sure when to use & or *.

  • 写回答

6条回答 默认 最新

  • duanping6698 2015-10-21 02:18
    关注

    Here is a very simple example, that illustrates how & and * are used. Note that * can be used for two different things 1) to declare a variable to be a pointer 2) to dereference a pointer.

    package main
    
    import "fmt"
    
    func main() {
        b := 6 
    
        var b_ptr *int // *int is used delcare variable
                       // b_ptr to be a pointer to an int
    
        b_ptr = &b     // b_ptr is assigned value that is the address
                           // of where variable b is stored
    
        // Shorhand for the above two lines is:
        // b_ptr := &b
    
        fmt.Printf("address of b_ptr: %p
    ", b_ptr)
    
        // We can use *b_ptr get the value that is stored
        // at address b_ptr, or dereference the pointer 
        fmt.Printf("value stored at b_ptr: %d
    ", *b_ptr)
    
    }
    

    Result:

    address of b_ptr: 0xc82007c1f0
    value stored at b_ptr: 6
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧